0
选择父我有以下表格:休眠:与儿童状况
HEADER
---------------------------------
ID | STATUS
---------------------------------
1 | A
---------------------------------
2 | B
---------------------------------
DATA
--------------------------------------------------
ID | HEADER_ID | DKEY | DVALUE
--------------------------------------------------
1 | 1 | Age | 90
--------------------------------------------------
2 | 1 | Gender | M
--------------------------------------------------
3 | 1 | Score | 1000
--------------------------------------------------
1 | 2 | Age | 8
--------------------------------------------------
2 | 2 | Gender | M
--------------------------------------------------
3 | 2 | Score | 0
--------------------------------------------------
我的JPA类:
**@Entity
@Table (name="HEADER")
public class Header {
@Id
@GeneratedValue
private int id;
@Column (name="STATUS")
private String status;
@OneToMany (cascade=CascadeType.ALL, orphanRemoval=true, mappedBy="header")
@LazyCollection(LazyCollectionOption.FALSE)
private Set<Data> dataList;
--- getters and Setters ---
}
@Entity
@Table (name="DATA")
publi class Data {
@Id
@GeneratedValue
private int id;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "HEADER_ID", nullable = false)
private Header header;
@Column (name="DKEY")
private String key;
@Column (name="DVALUE")
private String value;
}**
现在,我的问题是,我想使用休眠选择一个数据标题的“年龄”等于“90”和“性别”等于“M”。 我尝试了如下的方法:
选择从首标h不同ħ左连接h.dataList DL其中(dl.key = '年龄' 和dl.value = '90')和(dl.key =“性别'和dl.value ='M')
由于条件“(dl.key ='Age'和dl.value = '90')和(dl.key ='Gender'和dl.value ='M')“在一个”DATA“记录中执行,该记录总是会产生错误。
如果我把或者(“dl.key ='Age'和dl.value ='90')或者(dl.key ='Gender'和dl.value ='M')”结果是错误的因为我想获得那些数据满足年龄和性别条件的标题。
因为这个问题,我有几个小时的头痛,我已经没有办法解决问题了。希望有人能指出我正确的方向/解决方案。
非常感谢哟。