这里有一个简单的问题:
如果我有一个对象,其中包含已初始化和未初始化的值。有没有一种简单的方法在我的数据库中找到适合该 hibernate 的所有实体? (无需列出和检查对象的每个变量)
示例:
我上了这门课:
public class User {
private int id;
private String name;
private String email;
private boolean activ;
}
我希望能够做到这一点:
User user1 = new User();
user.setActive() = true;
User user2 = new User();
user.setActive(true);
user.setName("petter")
listUser1 = findAllUser(user1);
listUser2 = findAllUser(user2);
这里 listUser1 将包含所有活跃用户,listUser2 将包含所有名为 petter 的活跃用户。
谢谢大家!
编辑/解决方案
所以这是我的代码(我使用了一个与我的示例类似的类)。 它工作得很好,但问题是根据 Eclipse:“来自 SharedSessionContract 类型的方法 createCriteria(Class) 已被弃用”...
public static List<Personne> findAllPersonne(Personne personne) {
List<Personne> listPersonne;
EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("testhibernate0");
EntityManager entityManager = entityManagerFactory.createEntityManager();
Session session = entityManager.unwrap(Session.class);
Example personneExample = Example.create(personne);
Criteria criteria = session.createCriteria(Personne.class).add(personneExample);
listPersonne = criteria.list();
entityManager.close();
return listPersonne;
}
那么..我怎样才能以更好的方式做到这一点?我研究过 CriteriaQuery 但找不到如何使用它的示例。
最佳答案
是的,它存在:谷歌的关键词是“通过示例查询”或“qbe”。 https://dzone.com/articles/hibernate-query-example-qbe
关于java - Hibernate 在 db 中查找现有对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37945390/