【发布时间】:2014-10-29 13:45:56
【问题描述】:
我想使用与另一个实体的连接对一个实体运行条件查询。但是从 Java/Hibernate 的角度来看,没有对第二个实体的引用,从第二个实体到第一个实体只有一个。
为了便于理解,这里是猫化的情况:
===== Cat.java =====
@Id private long id;
@Column( unique = true, nullable = false )
private String name;
===== Kitten.java =====
@Id private long id;
@Column( unique = true, nullable = false )
private String name;
@OneToOne(optional = false)
private Cat mother; //only one child per mother ...
现在我想查询 Cats with Restrictions 和 OrderBy 的 Kitten。
session.createCriteria(Cat.class)
.createAlias(???? , "kitten")
.add( Restrictions.like( "kitten.name", "name_of_a_kitten" )
.addOrder( Order.asc( "kitten.name" ) )
.list();
首先我想到了使用子查询,但我找不到用于排序的解决方案,而且子查询在我看来不像别名那样可读。
Cat 无法更改,因此可能无法更改为双向。
我怎样才能完成查询?
顺便说一句。我正在使用休眠 4.2。
【问题讨论】:
标签: java hibernate criteria hibernate-criteria