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