2

我在 Data 和 Parameter 之间有这样的一般关系:

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,如何设法限制这种关系?我正在使用休眠 4.0

谢谢!

4

1 回答 1

2

您可以通过在 Hibernate 特定的@Where注释中提供条件 (SQL) 来限制它。在这种情况下,以下应该工作:

   //other annotations as they where 
   @Where(clause="type=0")
   Set<DataParameter> risks;

然后与资产的值 1 相同。

于 2012-07-22T18:49:18.560 回答