简体   繁体   English

如何在JPA中按名称获取Entity?

[英]How can I get Entity by name in JPA?

I have entity 我有实体

@Entity
@Table(name = "USER")
public class CrmUser implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String username;
    ...

And I have DAO with EntityManager How can I get user by username ? 我有EntityManager DAO,如何通过username获取用户?

@Override
    public User getUser(String login) throws Exception {
        User crmUser = (User) userJpaDao.getEntityManager()..............
        return crmUser;
    }
    @Entity
    @Table(name = "USER")
    @NamedQueries({
        @NamedQuery(
                name="CrmUser.getManagerByUserName",
                query="Select o From CrmUser o Where lower(o.username) = lower(:prm_sUserName)"
            )

    })
    public class CrmUser implements Serializable {

        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private Long id;
        private String username;

Function To Retrieve User according to your username . 根据您的username检索User功能。

 private CrmUser findByUserName(String prm_userName){
    TypedQuery<CrmUser > v_objQuery;
    CrmUser obj_UserFoundWithUserName;
    EntityManager g_objUserEntityManager;
    g_objUserEntityManager= ?????.getEntityManager(); //provide your dao Class to get your entity Manager.
    v_objQuery = g_objUserEntityManager.createNamedQuery(CrmUser .class.getSimpleName() + ".getUserByUserName", CrmUser.class);
    v_objQuery.setParameter("prm_sUserName", prm_userName);
    obj_UserFoundWithUserName= v_objQuery.getSingleResult();
}

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

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