hibernate查询实体不是由id

时间:2013-02-03 09:55:50

标签: java hibernate

我可以使用以下代码查询带有id的行:

Session session = (Session) HibernateUtil.getSessionFactory().getCurrentSession();
transaction = session.beginTransaction();

result = (T) session.get(clazz, id);

但我想要实现不同的东西。 为什么不可能(或者是?)声明某个列并获取与此列值匹配的所有行。像这样:

Session session = (Session) HibernateUtil.getSessionFactory().getCurrentSession();
transaction = session.beginTransaction();

result = (T) session.get(clazz, "column", "column_value");

1 个答案:

答案 0 :(得分:1)

使用Criteria APIHQL轻松实现。

假设Hibernate不支持通过非id列获取实体,因为Unit Of WorkIdentity Map模式实现了Hibernate L1缓存。

还要考虑Session#get and Session#load方法之间的差异。