【发布时间】:2011-05-24 22:46:54
【问题描述】:
假设我有以下两个类;用户和位置。我想创建一个 DetachedCriteria 来查询用户表,并返回所有没有名称为“xyz”的位置的用户。
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
Long id;
@CollectionOfElements
Set<Location> locations;
}
@Entity
public class Location{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
Long id;
@Column
String name;
}
以下代码将返回所有设置了名称为“xyz”的位置的用户:
DetachedCriteria dc = DetachedCriteria.forClass(User.class);
dc.createCriteria("locations")
dc.add(Restrictions.eq("name", "xyz"));
如果我更改为 Restrictions.ne(),那将不起作用,因为它只会返回实际设置了位置的用户。此外,如果为用户设置了一堆位置,它将一遍又一遍地复制该用户。
有什么想法吗?
【问题讨论】:
标签: java hibernate hibernate-criteria