相关疑难解决方法(0)

使用Hibernate映射PostgreSQL数组

有没有人通过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}');
Run Code Online (Sandbox Code Playgroud)

制图:

<hibernate-mapping>
    <class name="SalEmp" table="sal_emp">
        <id name="name" />
        <property name="payByQuarter" column="pay_by_quarter" />
    </class>
</hibernate-mapping>
Run Code Online (Sandbox Code Playgroud)

类:

public class SalEmp implements Serializable{
    private String name;
    private Integer[] payByQuarter;
    ...// getters & setters
}
Run Code Online (Sandbox Code Playgroud)

查询表格时出现异常.

java arrays postgresql hibernate

41
推荐指数
5
解决办法
4万
查看次数

Hibernate,Postgres和Array Type

我在使用hibernate 4.1.0映射的postgresql 9.3中使用数组类型时遇到了一个特定的问题.这种类型允许我拥有非常强大的数据模型,而无需构建大量的表和连接.

为了映射使用此特定类型存储的字段,我使用了UserType

无论如何,它适用于纯hibernate(hql),但我还需要将sql本机查询发送到我的数据库.当我这样做时,尽管尝试了很多次,但我还没有找到任何办法.

我尝试了很多基于此的语法

String[] values = {"value1", "value2"};
String queryString = "SELECT * FROM instances WHERE values && :values";
Query query = this.getSession().createSQLQuery(queryString).addEntity(Instance.class);
query.setParameterList("values", values);
query.list();
Run Code Online (Sandbox Code Playgroud)

我得到的运算符不存在:text [] &&字符变化

它应该在jdbc中给出以下语法:['value1','value2']并且它似乎给'value1'...

我试过很多语法

  • 采集
  • 纯阵列
  • [:values]语法:我在"["附近出现语法错误

我需要发送本机查询,因为我使用Materialized View来提高性能.

我的SQL查询在postgresql控制台中有效.所以这是一个特定于hibernate的问题.

java arrays postgresql hibernate

13
推荐指数
1
解决办法
1万
查看次数

HQL如何查询String的ElementCollection

我喜欢上课

public User{
   Long id;
   Set<String> roles;
}
Run Code Online (Sandbox Code Playgroud)

如何查询User具有角色的所有对象"ADMIN"

编辑:

我正在使用Hibernate 3.0.5.并尝试了大多数明显的方法.

from Users where roles in('ADMIN')给出了JDBC错误. from Users u where u.roles in('ADMIN')给出一个类强制转换异常

我认为这可能是这个特定版本的hibernate的一个问题.

java hibernate hql jdbc

6
推荐指数
1
解决办法
5277
查看次数

标签 统计

hibernate ×3

java ×3

arrays ×2

postgresql ×2

hql ×1

jdbc ×1