小编mal*_*ent的帖子

如何使用JPA和Hibernate通过自定义对象实体属性进行查询

编写DAO方法以通过电子邮件检索appUsers,其中email属于EmailAddress类。一直在寻找如何做到这一点无济于事。有没有一种方法可以根据自定义对象的值来检索记录?当我拥有String或int类型的属性时,这似乎起作用,但是如何获取与我的EmailAddress对象匹配的记录?

尝试了以下操作,但不起作用:

public List<AppUser> findByEmail(EmailAddress email) {
    log.debug("finding " + getTable() + " instance by example");

    AppUser appUser = new AppUser();
    appUser.setEmail(email);

    try {
        List<AppUser> results = this.sessionFactory.getCurrentSession()
                .createCriteria(AppUser.class)
                .add(Example.create(appUser)).list();
        log.debug("find by example successful, result size: "
                + results.size());
        return results;
    } catch (RuntimeException re) {
        log.error("find by example failed", re);
        throw re;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的AppUser类的相关部分

@Entity
@Table(name="AppUser")
public class AppUser extends BaseEntity {
    ...

    @Column(name="Email")
    private EmailAddress email;

    ...

    /**
     * Gets this AppUser's associated email
     * 
     * @return …
Run Code Online (Sandbox Code Playgroud)

java orm hibernate jpa hibernate-mapping

2
推荐指数
1
解决办法
4681
查看次数

标签 统计

hibernate ×1

hibernate-mapping ×1

java ×1

jpa ×1

orm ×1