Java 休眠条件枚举
如果实体中有如下枚举:Java 休眠条件枚举,java,hibernate,enums,criteria,Java,Hibernate,Enums,Criteria,如果实体中有如下枚举: @Entity public class AA{ @Embedded public BB b; ... } @Embeddable public class BB{ @Enumerated(EnumType.STRING) @Column(columnDefinition = "varchar(50)") private CC c; ... } public enum CC{ D("DDD","123"),
@Entity
public class AA{
@Embedded
public BB b;
...
}
@Embeddable
public class BB{
@Enumerated(EnumType.STRING)
@Column(columnDefinition = "varchar(50)")
private CC c;
...
}
public enum CC{
D("DDD","123"),
E("EEE","456");
}
Criteria crit = sessionFactory.getCurrentSession().createCriteria(AA.class);
List<AA> list = crit.add(Restrictions.eq("b.c", CC.D)).list();
然后使用hibernate条件查询,如下所示:
@Entity
public class AA{
@Embedded
public BB b;
...
}
@Embeddable
public class BB{
@Enumerated(EnumType.STRING)
@Column(columnDefinition = "varchar(50)")
private CC c;
...
}
public enum CC{
D("DDD","123"),
E("EEE","456");
}
Criteria crit = sessionFactory.getCurrentSession().createCriteria(AA.class);
List<AA> list = crit.add(Restrictions.eq("b.c", CC.D)).list();
Criteria crit=sessionFactory.getCurrentSession().createCriteria(AA.class);
List List=crit.add(Restrictions.eq(“b.c”,CC.D)).List();
您需要为嵌入对象创建别名,然后通过别名访问其属性
你喜欢这样吗
Criteria crit = sessionFactory.getCurrentSession().createCriteria(AA.class,"a");
crit.createAlias("a.b", "b");
List<AA> list = crit.add(Restrictions.eq("b.c", CC.D)).list();
Criteria crit=sessionFactory.getCurrentSession().createCriteria(AA.class,“a”);
标准createAlias(“a.b”、“b”);
List List=crit.add(Restrictions.eq(“b.c”,CC.D)).List();
我没有创建alias,但它运行正常,您能告诉我为什么吗?您想知道的问题在您的问题中并不清楚?我现在没有问题,只是想向可能遇到此问题的其他人展示您的问题是什么?您有我问题的答案吗