Я использую базу данных postgres и весну с hibernate в моем проекте.
Я просто хочу получить некоторые данные из БД, где таблица имеет столбец типа данных массива сама по себе.
Пока я получаю с этой таблицы, я получаю следующую ошибку.
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;
Hibernate не поддерживает массивы базы данных (java.sql.Array
).
Вы получаете ошибку, потому что Hibernate ожидает отдельную таблицу для List<Long> bankStmtId
(поскольку вы явно не указали имя таблицы, Hibernate принимает значение по умолчанию <entity name>_<property name>
, таким образом, reconcileprocess_bankstmtid
).
Вы можете либо переключиться на поддерживаемый подход с отдельной таблицей, либо, как описано здесь, вы можете попытаться написать пользовательский тип пользователя для массивов баз данных.