0
假设我有类似于下面的类(为了简洁省略了getter/setter)。休眠标准
public class Record{
// ... properties
private Metadata metadata;
@OneToOne(cascade=CascadeType.ALL)
@PrimaryKeyJoinColumn
public Metadata getMetadata(){
return metadata;
}
}
public class Metadata {
private Boolean enabled = false;
private Record record;
@OneToOne
@PrimaryKeyJoinColumn
public getRecord() {
return record;
}
@Column("enabled")
public Boolean getEnabled() {
return enabled;
}
}
使用hibernate标准我想运行一个查询,说'给我所有的空元数据或未启用元数据的记录。目前我的代码如下:
List results = session().createCriteria(Record.class).list();
// iterate over results, pluck out the Records that match my criteria
...但我们可以做得更好吗?
我已经尝试创建元数据的别名,并试图查看别名是否为空,或者如果alias.property匹配我的条件即(Restrictions.eq(“metadata.enabled”,false)但不'我也试图使用一个析取过滤我的结果,我正在寻找的两个条件(元数据为空,或元数据未启用)。这两种方法都没有奏效;我假设它是因为我正在尝试与标准做我想到,如果你能使其请阐明这一些轻,我的方式是不加入
是的,这是我最初的实现。这没有奏效。如果人们可以告诉我,这当然是正确的做法,那么我的问题一定是其他地方。 – zmf 2012-08-15 16:05:38
当使用DetachedCriteria(与spring)时,我个人遇到了嵌套属性的问题。没有弄清楚问题是什么......我必须创建“根植于”特定实体的子标准,以进一步过滤。 – Less 2012-08-15 16:09:50