【问题标题】:How can I join entities with criteria?如何加入符合条件的实体?
【发布时间】:2015-04-28 21:03:03
【问题描述】:

我有两个实体类,它们的映射中不包含任何关联。

@Entity
@Table(schema = "mailing", name = "recipient_code_statistics")
public class RecipientCodeStatistics {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    private int id;

    @Column(name = "recipient_code_id", unique = true)
    private long recipientCodeId;

    //GET, SET
}

和

@Entity
@Table(schema = "mailing", name = "recipient_code")
public class RecipientCode {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    private long id;

    @Column(name = "code")
    private String code;

    //GET ,SET
}

是否可以写一个criteria查询,类似如下:

SELECT * 
FROM recipient_code_statistic 
LEFT OUTER JOIN recipient_code
ON recipient_code_statistic.recipient_code_id = recipient_code.id
WHERE recipient_code.code = '123'

没有在映射中明确声明与@OneToMany 注释的关联?

【问题讨论】:

    标签: java hibernate


    【解决方案1】:

    如果不映射两个实体对象,就不可能编写显式连接。但是你可以做一个子查询。

    Here is a reference to a similiar question.

    And here the link to the answer containing a subquery example

    【讨论】:

      【解决方案2】:

      尝试使用原生查询@NativeQuery()

      【讨论】:

      • NativeQuery 看起来我应该写 sql-query。但我对类似标准的解决方案感兴趣。
      猜你喜欢
      • 2018-04-13
      • 2017-10-06
      • 1970-01-01
      • 2015-09-02
      • 1970-01-01
      • 2020-11-30
      • 1970-01-01
      • 1970-01-01
      • 2020-01-22
      相关资源
      最近更新 更多