java - 如何使用 Session.get() 使用 Hibernate 查询电子邮件 ID?

标签 java hibernate hibernate-mapping

我刚刚开始使用 Hibernate。我正在构建一个示例应用程序,我在其中通过用户的电子邮件地址注册用户。

当他们登录时,他们会使用该电子邮件地址和密码。现在,我如何在查询他们的电子邮件 ID 时获取/检索记录/结果?

我的代码是这样的:

    Configuration config = new Configuration();
    SessionFactory sessionFactory = config.configure().buildSessionFactory();
    Session session = sessionFactory.openSession();

    try{
        Transaction tx = session.beginTransaction();
        LoginBean L = (LoginBean)session.get(LoginBean.class,loginBean.getEmail());

    }catch(HibernateException HE){
        System.out.println(HE.getMessage());
    }

email 字段当然是一个StringSession.get()class,integer 作为参数。我确实有一个 Integer 类型的主键,但我想使用 email 字段进行搜索/获取。

我该怎么做?

最佳答案

Session.get() 通过主键查找实体。要通过其他方式查找实体,您需要执行查询:

LoginBean user = (LoginBean)
    session.createQuery("select lb from LoginBean lb where lb.email = :email")
           .setString("email", email)
           .uniqueResult();

查询和 JPQL 在引用文档中进行了解释。阅读它。

关于java - 如何使用 Session.get() 使用 Hibernate 查询电子邮件 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22731506/

相关文章:

java - Android Studio DatePicker 在微调模式下显示年份部分

java - 液基 : How to use <whereparams> inside an <update>?

java - CrudRepository 不从 API 返回数据库元素

java - Hibernate 返回先前加载的实体的代理

java - LazyCollectionOption.EXTRA 与 Spring 代理?

java - 比较 ArrayList 中的字符?

java - Swagger代码生成: Inheritance and Composition not working as expected

java - JPA 不坚持我的类(class)

java - 无法打开事务 JAVA MAVEN SPRING 的 Hibernate session

java - 使用 Spring 框架获取 org.hibernate.MappingException : Unknown entity.