java - 使用嵌入对象(元组)进行 Hibernate Criteria 选择

标签 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 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,我得到了List,我唯一想做的就是使用如下条件查询一个元组:

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

这可能吗?我试图使用 @Embedded 对象,但不知道如何准确地为其构造查询。请帮忙

最佳答案

您可以不使用标准 SQL 或使用条件来做到这一点;您必须分成两个不同的限制或使用 Session.SQLQuery()如果您想使用特定的 RDBMS(请参阅 SQL WHERE.. IN clause multiple columns 获取说明)

关于java - 使用嵌入对象(元组)进行 Hibernate Criteria 选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18447740/

相关文章:

java - 从java应用程序上传文件的云服务

sql - 选择跨案例的不同计数

java - Hibernate 5+ 未映射 MySQL 表

java - 如何在使用 adb.exe shell 命令执行 android 应用程序时发送参数

java - 跳过 child 获取 parent - JPA

java - 从 java 作为子进程运行 python 脚本

php - 多表SQL交叉引用搜索困难

mysql - SQL中如何跨表执行范围查询

hibernate - 如何在spring boot中获取postgres jsonb列的嵌套对象的值

java - 计数 (*) 位于另一个计数 (*) 内