0
我已经通过连接两个实体一个多到一的关系休眠许多-to-one关联错误
@Entity
public class A {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "A_ID")
public Long id;
public String status;
@OneToMany(mappedBy = "a")
public Collection<B> b;
}
@Entity
public class B {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Long id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="A_ID", nullable=false)
public A a;
// ... some other members ...
}
现在,我想所有的B的具有A的 “接受” 状态:
Criteria criteria = session.createCriteria(B.class);
criteria.createAlias("a.status", "status");
criteria.add(Restrictions.eq("status", "accepted"));
return criteria.list();
这导致休眠抛出“org.hibernate.QueryException:不是关联:状态”。我做错了什么?由于多对一的关系,我认为这些表格是相关联的。
我觉得你有别名错误。你不能上的属性创建别名,你可以创建公会。查看我的解决方案的更新答案。 – Zeus
现在非常感谢你,它的工作。 – Mewel