繁体   English   中英

OneToMany / ManyToOne关系的Hibernate标准

[英]Hibernate criteria for OneToMany/ManyToOne relationship

我在两个对象之间有一个OneToMany / ManyToOne关系,如:

public class Company {
    private Long compid;
    private String companyName;

    @OneToMany(mappedBy = "company", cascade = CascadeType.ALL)
    @LazyCollection(LazyCollectionOption.FALSE)
    private List<Employee> employees;
}

public class Employee {
    private Long empid;
    private String fstName;
    private String lstName;
    private String sal;

    @ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
    @NotFound(action = NotFoundAction.IGNORE)
    @JoinColumn(name = "compid", nullable = true)
    private Company company;
}

我想让拥有company.companyName like xxxx%的员工company.companyName like xxxx% 我尝试过类似的东西:

Criteria criteria = session.createCriteria(Employee.class);
criteria.createAlias("company", "company");
criteria.add(Restrictions.like("company.companyName ", "xxxx%"));
return criteria.list();

但我得到错误:

could not resolve property: company.companyName of: Employee

这段代码中的问题在哪里?

您已在第3行条件中添加了类似"company.companyName "的空格。 这是错字吗? 如果没有那么它就是问题的原因。

我找到问题的根源,这是我的一个愚蠢的错误,在我的原始代码中我把compny.companyName,我在公司忘了“a”,它运作得很好。

您应该使用criteria.createCriteria而不是criteria.createAlias

暂无
暂无

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

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