我在使用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'...
我试过很多语法
我需要发送本机查询,因为我使用Materialized View来提高性能.
我的SQL查询在postgresql控制台中有效.所以这是一个特定于hibernate的问题.