数据和参数之间有一个通用关系,如下所示:
enum ParameterType { RISK, ASSET }
class Data {
Long id;
@OneToMany
@JoinColumns({
@JoinColumn(name="data_id")
@// Restrict DataParameter.type = 'RISK'
})
Set<DataParameter> risks;
@OneToMany
@JoinColumns({
@JoinColumn(name="data_id")
@// Restrict DataParameter.type = 'ASSET'
})
Set<DataParameter> assets;
}
class DataParameter {
Long id;
ParameterType type;
@ManyToOne
Parameter parameter;
@Temporal
Date date;
...
}
如何通过考虑 ParameterType 来限制这种关系?我正在使用 Hibernate 4.0
谢谢!
最佳答案
您可以通过在 Hibernate 特定中给出条件(SQL)来限制它 @Where注解。在这种情况下,以下内容应该有效:
//other annotations as they where
@Where(clause="type=0")
Set<DataParameter> risks;
然后与 Assets 值 1 相同。
关于Hibernate OneToMany JoinColmuns 和常量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11602925/