我有表A,B,C其中B是關聯表,添加列休眠條件一對多嵌入表
| A | 1 .. * | B | * .. 1 | C |
@Embeddable
public class BPK implements Serializable {
private static final long serialVersionUID = 1L;
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="i_a", nullable=false)
private A a;
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="i_c", nullable=false)
private C c;
// getters, setters
}
實體Ç
@Entity
@Table(name = "c")
public class C {
@Column(name = "i_c")
private Long iC;
@Column(name="name")
private String name;
// getters, setters
}
:爲B實體的列表
@Entity
@Table(name = "a")
public class A {
//id
@OneToMany(mappedBy="bPK.a", cascade={CascadeType.ALL})
private List<B> listB;
// getters, setters
}
實體B已經嵌入了PK
@Entity
@Table(name = "b")
public class B {
@EmbeddedId
private BPK bPK;
// added columns
// getters, setters
}
嵌入式主鍵類
實體A
...我想獲得這樣的一個對象已關聯的對象C混凝土名
我試圖做這種方式,但它不工作
Criteria criteria = session.createCriteria(A.class);
criteria.createAlias("listB", "bList")
criteria.add(Restrictions.like("bList.bPK.c.name", "name", MatchMode.ANYWHERE));
我有以下異常:
org.springframework.orm.hibernate3.HibernateQueryException:無法解析屬性:bPK.c.name
謝謝大家幫忙
你有沒有找到這個問題的解決方案?你剛剛使用HQL? – Curt
@Curt我使用HQL。 – Daniel
謝謝,這就是我最後做的...... – Curt