繁体   English   中英

具有@Entity bean的Javax.persistence,将int []保存为bytea(postgres)

[英]Javax.persistence with @Entity bean saving int[] as bytea (postgres)

在我当前的项目中,我有一个@Entity bean,除其他外,还有一个int []字段,该字段应与我的postgres数据库中的integer []字段匹配。
但是,在持久化我的对象时,我会得到如下异常:

Internal Exception: org.postgresql.util.PSQLException: ERROR: column "drawset_basedata" is of type integer[] but expression is of type bytea
Error Code: 0
Call: INSERT INTO drawset (drawset_id, drawset_basedata, drawset_created, drawset_data) VALUES (?, ?, ?, ?)
    bind => [null, [B@19701da, null, [B@facd93]
Query: InsertObjectQuery(lotoFlow.Drawset[drawsetId=null])
    at org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:333)

我使用了调试器,我可以清楚地看到baseData属性是一个初始化的int []变量,我不明白为什么它作为一个字节来。
谢谢!

Hibernate和JPA不支持PostgreSQL数组,因此最好的选择是规范化模型或手动运行SQL。

PostgreSQL确实可以很好地处理数组,但其他许多db却不能。 由于这个原因,人们通常不希望跨数据库框架中有强大的数组支持。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM