使用Criteria查询级联表时出现的问题及解决
2013-02-27 19:39
363 查看
Hibernate的dot-based级联表查询HQL可以算是能够大大提高生产力的特性之一,比如
EOrder (1) —- (1) ECustomer
一般会在EOrder对象中维护一个ECustomer对象,然后使用以下方式进行查询:
session.createQuery("from EOrder where customer.name=?").setString(0,"shanghai");
但是上面的思路在今天使用Criteria时出现了问题,一直报错找不到属性”customer.name”。经过再三google,原来是使用Criteria时需要自己维护级联关系,即
Criteria orderCriteria = session.createCriteria(EOrder.class);
orderCriteria.createCriteria("customer").add(Restrictions.ilike("name","%gg%"));
还有一种解决办法:
Criteria orderCriteria = session.createCriteria(EOrder.class)
.createAlias("customer","cust")
.add(Restrictions.ilike("cust.name","%d%"));
EOrder (1) —- (1) ECustomer
一般会在EOrder对象中维护一个ECustomer对象,然后使用以下方式进行查询:
session.createQuery("from EOrder where customer.name=?").setString(0,"shanghai");
但是上面的思路在今天使用Criteria时出现了问题,一直报错找不到属性”customer.name”。经过再三google,原来是使用Criteria时需要自己维护级联关系,即
Criteria orderCriteria = session.createCriteria(EOrder.class);
orderCriteria.createCriteria("customer").add(Restrictions.ilike("name","%gg%"));
还有一种解决办法:
Criteria orderCriteria = session.createCriteria(EOrder.class)
.createAlias("customer","cust")
.add(Restrictions.ilike("cust.name","%d%"));
相关文章推荐
- 解决在mybatis中使用CTE进行oracle查询数据类型为long的字段出现流关闭问题
- 解决在mybatis中使用CTE进行oracle查询数据类型为long的字段出现流关闭问题
- 求助Hibernate问题(我使用Criteria 查询数据库表时,当客户端调用到第3次就出现问题 )
- 如何解决ADO.NET访问Access数据库出现"操作必须使用一个可更新的查询"的问题
- 执行SQL语句时出现问题操作必须使用一个可更新的查询错误的解决方法
- 关于Hibernate中fatch=eager的bag集合(一个java List)使用Criteria查询出现重复记录的问题
- 如何解决ADO.NET访问Access数据库出现"操作必须使用一个可更新的查询"的问题(非原创,摘自书中)
- Yii的CDbCriteria查询(以及使用$criteria->join出现问题的解决方法)
- 使用Ef查询出现的问题The cast to value type 'System.Boolean' failed because the materialized value is null.的解决方法
- 如何解决ADO.NET访问Access数据库出现"操作必须使用一个可更新的查询"的问题
- 解决Hibernate使用HQL查询出现is not mapped问题
- "执行SQL语句时出现问题操作必须使用一个可更新的查询"错误的解决方法
- Jedis出现connection timeout问题解决方法(JedisPool连接池使用实例)
- Jeecg中使用<t: dgCol>标签的自动构造查询条件时出现类型转换错误的解决办法。
- Jnotify在linux下的使用出现的问题解决
- 一例由于用redis缓存一张表到内存导致列表页面在搜索查询的时候出现未将对象引用设置到对象的实例问题的解决
- 使用Django出现的问题及解决办法
- JSP页面中使用JSTL标签出现无法解析问题解决办法
- 关于ASP.NET“操作必须使用一个可更新的查询”问题的解决方法
- 使用POI是读取excel文件中电话号码及日期出现的问题及解决