java - Hibernate 在 db 中查找现有对象

标签 java hibernate

这里有一个简单的问题:

如果我有一个对象,其中包含已初始化和未初始化的值。有没有一种简单的方法在我的数据库中找到适合该 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/

相关文章:

java - XMPP 与 SIP 比较

java - try-finally with close auto-refactoring 到 try-with-resources with codestyle/checkstyle

Java Enum 类型与 Hibernate

sql - 优惠券使用限制的数据库设计

java - 保存多个多对一关系时的 Hibernate 优化

java - Solr 3.4 Geodist 函数,不正确/或不需要的结果

java - 使用 Lambda 方法简化事件在 Java 中不起作用

Java Hibernate暂时忽略带有条件的@ManyToOne注释

java - 使用 Hibernate 在 CollectionTable 的列上创建索引

spring - 从 JBoss EAP 6.1 中排除 JPA 子系统 - 尝试在 JBoss EAP 6.1 中使用 JPA 2.1