我在我的项目中使用postgres数据库和spring with hibernate。
我只想从DB获取一些数据,其中表本身具有数组数据类型列。
当我从该表中获取时,我收到以下错误。
ERROR org.hibernate.util.JDBCExceptionReporter - ERROR: relation "reconcileprocess_bankstmtid" does not exist
表结构如下
CREATE TABLE reconcile_process
(
id bigserial NOT NULL,
comments character varying,
fk_last_modified_by bigint NOT NULL,
last_modified_date timestamp with time zone NOT NULL,
fk_remittance_transaction_fkey character varying,
fk_transaction_ref character varying,
process_type character varying,
reconcilled_date date,
fk_bank_stmt_id bigint[]
)
该表的实体类
@Entity
@Table(name = "reconcile_process")
public class ReconcileProcess implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "id")
Long id;
@Column(name = "comments")
String comments;
@Column(name = "fk_last_modified_by")
Long lastModifiedBy;
@Column(name = "last_modified_date")
Date lastModifiedDate;
@Column(name = "fk_transaction_ref")
String transactionRef;
@Column(name = "fk_remittance_transaction_fkey")
String remitTransactionRef;
@Column(name = "process_type")
String processType;
@Column(name = "reconcilled_date")
Date reconcilledDate;
@ElementCollection
@Column(name = "fk_bank_stmt_id")
List<Long> bankStmtId;
答案 0 :(得分:0)
Hibernate不支持数据库阵列(java.sql.Array
)。
你得到错误是因为Hibernate需要一个单独的List<Long> bankStmtId
表(因为你没有明确指定表名,Hibernate假定默认为<entity name>_<property name>
,因此reconcileprocess_bankstmtid
)。
您可以使用单独的表切换到支持的方法,或者按照here的说明,您可以尝试为数据库阵列编写自定义用户类型。