私の場合、次のような SQL クエリがあります。
select * from event_instance where (object_id, object_type) in
(<LIST OF TUPLES RETRIEVED FROM SUBQUERY>);
これを Hibernate Entities にマップしたいのですが、このクエリに問題があります。私のマッピングは次のようになります。
@Entity
@Table(name="event_instance")
public class AuditEvent {
<OTHER_FIELDS>
@Column( name = "object_type", nullable = false)
private String objectType;
@Column( name ="object_id" , nullable = false)
private Integer objectId;
}
および 2 番目のエンティティ:
@Entity
@Table(schema = "els" ,name = "acg_objects")
public class AcgObject implements Serializable{
@Id
@Column(name = "acg_id")
private String acgId;
@Id
@Column(name="object_type")
private String objectType;
@Id
@Column(name="object_id")
private Integer objectId;
<OTHER FIELDS>
}
AcgObjects を取得するためのクエリを既に実行しており、DAO に対して List を取得しています。やりたいことは、次のような基準を使用してタプルをクエリすることだけです。
crit.add(Restrictions.in("objectType,objectId",<List of tuples>);
出来ますか?@Embedded オブジェクトを使用しようとしていましたが、そのクエリを正確に構築する方法がわかりません。助けてください