繁体   English   中英

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

[英]How to query with email id using Hibernate using Session.get()?

我刚刚开始使用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字段是一个String Session.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。 阅读。

使用表的主键来执行session.get(),如果表的主键不是电子邮件ID,则必须编写查询/ criteria / sql查询以匹配电子邮件密码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM