java - Hibernate 条件查询。创建子标准后,我可以返回原始标准吗?

标签 java hibernate hibernate-criteria

在 Hibernate 教程中有一个 example of sub-criteria .

但是创建“小猫”的子标准后,我可以返回到原始标准吗?如果我写一行 .add(Restrictions.like("id", 1)) ,它会限制 Cat.id 或 Cat.kittens.id 吗?有没有办法返回并再次限制cat.id?

List cats = sess.createCriteria(Cat.class)
    .add( Restrictions.like("name", "F%") )
    .createCriteria("kittens") 
        .add( Restrictions.like("name", "F%") ) 
    .add(Restrictions.like("id", 1)) // on Cat.id or Cat.kittens.id?
    .list();

最佳答案

为避免混淆,请添加如下代码所示的标准

    List cats = sess.createCriteria(Cat.class).createCriteria("cat")
.add( Restrictions.like("name", "F%") )
.createCriteria("kittens") 
    .add( Restrictions.like("name", "F%") ) 
.add(Restrictions.like("cat.id", 1)) // on Cat.id or Cat.kittens.id?
.list();

希望这会有所帮助。

关于java - Hibernate 条件查询。创建子标准后,我可以返回原始标准吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47442765/

相关文章:

java - Log4j + OpenJPA = NoClassDefFoundError : javax/persistence/AttributeConverter

java - Activity.getIntent() 可以返回 null 吗?

java - 将原始数组转换为装箱数组时如何减少强制转换次数

java - @Basic 注解到底做了什么?

java - 如何获取 XML 中定义的 ListPreference 的默认值?

hibernate - 获取一个懒惰的一对多列表的 child

java - 在 Hibernate 中执行过程

java - JPA 实体 - 如何根据其父字段更新子实体字段

hibernate - grails/hibernate标准如何获取至少有一个 child 满足条件的所有行

java - Hibernate Criteria API 中的 SQL 'LIKE' 运算符