Java 使用嵌入对象(元组)选择Hibernate条件

Java 使用嵌入对象(元组)选择Hibernate条件,java,sql,hibernate,embeddable,Java,Sql,Hibernate,Embeddable,在我的例子中,我有一个SQL查询,如下所示: select * from event_instance where (object_id, object_type) in (<LIST OF TUPLES RETRIEVED FROM SUBQUERY>); 我想把它映射到Hibernate实体上,但这个查询有问题。我的映射如下所示: @Entity @Table(name="event_instance") public class Aud

在我的例子中,我有一个SQL查询,如下所示:

select * from event_instance where (object_id, object_type) in 
    (<LIST OF TUPLES RETRIEVED FROM SUBQUERY>);
我想把它映射到Hibernate实体上,但这个查询有问题。我的映射如下所示:

     @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;
     }
第二实体:

    @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,我要获取列表,我唯一想做的就是使用如下条件查询一个tople:

      crit.add(Restrictions.in("objectType,objectId",<List of tuples>);

可能吗?我试图使用@Embedded object,但不知道如何准确地为它构造查询。请提供帮助

您可以在标准SQL或使用标准中执行此操作;如果要使用特定的RDBMS,必须将其分成两个不同的限制或使用