有没有人通过Hibernate成功将PostgreSQL中的数字数组映射到Java中的数字数组?
sql:
CREATE TABLE sal_emp (name text, pay_by_quarter integer[]);
INSERT INTO sal_emp VALUES ('one', '{1,2,3}');
INSERT INTO sal_emp VALUES ('two', '{4,5,6}');
INSERT INTO sal_emp VALUES ('three', '{2,4,6}');
映射:
<hibernate-mapping>
<class name="SalEmp" table="sal_emp">
<id name="name" />
<property name="payByQuarter" column="pay_by_quarter" />
</class>
</hibernate-mapping>
类:
public class SalEmp implements Serializable{
private String name;
private Integer[] payByQuarter;
...// getters & setters
}
查询表时出现异常。
Hibernate不支持java.sql.Array
开箱即用的数据库阵列(例如,映射到的数据库阵列)。
array``primitive-array
Hibernate提供的类型和类型用于将Java数组映射到支持表-
它们基本上是一对多/元素集合映射的变体,所以这不是您想要的。
最新的PostgreSQL的JDBC驱动程序(8.4.whatever)支持JDBC4
Connection.createArrayOf()
方法以及ResultSet.getArray()
和PreparedStatement.setArray()方法,虽然如此,你可以写你自己UserType
提供的阵列支持。
这是一个处理Oracle数组的UserType实现,它提供了一个很好的起点,因此使其适应处理是相当简单的java.sql.Array
。
问题内容: 您能帮我使用Hibernate映射此类吗? 我正在使用PostgreSQL,表中的列类型是integer []应该如何映射我的数组? 问题答案: 我从未将数组映射为hibernate状态。我总是使用收藏集。因此,我对您的课程进行了一些更改:
我正在使用Hibernate和JPA注释来映射我的类。当hibernate尝试映射这个类时,我遇到了一个问题 我的Social alStat类是: 我得到了这个错误: 我猜发生这种情况是因为我试图映射到一个基本类,但@ElementCollection注释不应该解决这个问题吗? 我的item类如下所示:
问题内容: 我正在使用Hibernate 3.3和PostgreSQL 8.x,并希望使用Hibernate批注来映射不是主键的自动增量列。 只要该列是由数据库而不是由Hibernate自动递增的,则在Postgres中使用SERIAL类型或序列映射该列都没有关系。我尝试了以下映射,但它们始终生成空的orderId。 我将不胜感激。 谢谢 问题答案: 以下映射应该可以正常工作: 但是请注意,刷新会
问题内容: 我正在尝试将Postgres自定义类型(名为transmission_result)映射到Hibernate / JPA POJO。postgres自定义类型或多或少是字符串值的枚举类型。 我创建了一个名为PGEnumUserType的自定义EnumUserType以及一个表示postgres枚举值的枚举类。当我对一个真实的数据库运行它时,我收到以下错误:’ERROR:列“状态”的类型
问题内容: 我的PostgreSQL数据库(9.2)中有一个表,其中的列类型为JSON。我很难将此列映射到“ JPA2实体”字段类型。 我尝试使用String,但是当我保存实体时,出现一个异常,即它无法将字符转换为JSON。 处理JSON列时使用的正确值类型是什么? 一个简单的解决方法是定义一个文本列。 问题答案: 请参阅PgJDBC错误#265。 PostgreSQL过于严格,对数据类型转换非常
问题内容: 如何在Hibernate中映射整数列表? 像这样: 问题答案: 使用@ElementCollection映射。参阅文件