Hibernate OneToMany JoinColmuns 和常量值

标签 hibernate jpa

数据和参数之间有一个通用关系,如下所示:

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/

相关文章:

java - Spring 测试事务注释不起作用

java - BindingResult 和 bean 名称 'owner' 的普通目标对象都不能作为请求属性

java - Hibernate 使 Weld 不在 Java SE 中初始化

java - Hibernate 一对一条件获取

java - 在 JSF 项目中引用 JPA 项目

java - 将表从 postgresql 数据库绑定(bind)到 Netbeans GUI 表时出错

java - 保存时双向 OneToMany 和 ManyToOne 返回 "NULL not allowed for column"

java - 如何在 sql INSERT 期间自动生成 ID?

java - 使用 JOIN 实现 JPA 请求

java - Hibernate 为自己创建外键