2

データとパラメータの間には、次のような一般的な関係があります。

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を考慮して、この関係をどのように制限できますか?Hibernate4.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 に答える