休眠映射异常:实体的重复列映射



我知道这个问题已经被问了很多次,我浏览了解决方案,但无法了解我在哪里失踪。请在下面找到我遇到问题的实体。

@Entity
@Table(name = "debit_file", schema = "test")
public class DebitFile  extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "test.debit_file_seq")
@SequenceGenerator(name = "test.debit_file_seq", sequenceName = "test.debit_file_seq", allocationSize = 1)
@Column(name = "id")
private Long id;
@Column(name = "file_name")
private String fileName;
@Column(name = "file_path")
private String filePath;
@Column(name = "no_of_records")
private int noOfRecords;
@Column(name = "no_of_records_processed")
private int noOfProcessedRecords;
@Column(name = "no_of_records_unprocessed")
private int noOfUnprocessedRecords;
@Column(name = "created_at")
private Date createdDate;
@Column(name = "status")
private String status;
@OneToMany(fetch = FetchType.EAGER)
@JoinColumn(name = "file_id", referencedColumnName = "id", updatable = false, insertable = false)
private List<DebitFileRecord> debitFileRecordList = new ArrayList<>();
getters() and setters() below...
}

第二类如下:

@Entity
@Table(name="debit_file_record", schema = "test")
public class DebitFileRecord {
@Id
@GeneratedValue(generator = "UUID")
@GenericGenerator(name="UUID", strategy="org.hibernate.id.UUIDGenerator")
@Column(name="id" , updatable = false, nullable = false)
private UUID id;
@Column(name="transaction_date")
private Date transactionDate;
@Column(name="account_number")
private String accountNumber;
@Column(name="record")
private String record;
@Column(name="status")
private String status;
@Column(name="error_message")
private String errorMessage;
@Column(name = "file_id")
private Long fileId;
getters() and setters below...
}

如上面的代码所示,这是一个非常简单的映射,但我仍然得到

repeated column mapping for entity DebitFile column: created_at 
(should be mapped with insert="false" update="false").

我在代码中没有看到任何错误。有人可以帮我了解这个问题吗?

要检查的几件事:

  1. BaseEntity是否还包括映射到"created_at"的另一个字段?
  2. DebitFileBaseEntity是否有映射到"created_at"的吸气剂?

如果 (1( 为"是",则从DebitFile中删除createdDate,因为它已在BaseEntity中定义。

如果 (2( 为是,则从 getter 中删除映射,因为它已在字段中定义。

最新更新