java - hibernate HQL : Left Join with OnetoOne

标签 java hibernate hql

我有以下名为产品的实体:

@Id 
@SequenceGenerator(name = "Product_seq", sequenceName = "PRODUCT_SEQ", allocationSize = 1)
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator = "Product_seq")
@Column(name = "ID")
private Long id;

@OneToOne
@JoinColumn(name = "CAS_ID")
private CAS cas;
...

还有一个 CAS 实体:

@Id
@SequenceGenerator(name = "CAS_seq", sequenceName = "CAS_SEQ", allocationSize = 1)
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator = "CAS_seq")
@Column(name = "ID", unique = true, nullable = false, scale = 0)
private Long id;

@Column(name = "CAS_NUMBER", length = 6)
private String casNumber;

@Column(name = "CAS_DESCRIPTION")
private String casDescription;
...

在我的应用程序中,我有以下 HQL 语句:

select p from Product p where p.approve IS NULL order by p.cas.casNumber desc

这里的问题是 p.cas.casNumber 可以为 NULL,我也需要返回这些行。我不知道如何使用 p.cas.casNumber 在此表上编写 LEFT JOIN。

感谢您提供的任何帮助。谢谢!

最佳答案

您可以尝试如下:

select p from Product p left join p.cas as a where p.approve IS NULL order by a.casNumber desc

关于java - hibernate HQL : Left Join with OnetoOne,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21442221/

相关文章:

java - OptionalInt.isPresent 字段的用途是什么?

java - 如果用户输入随机字母,如何给出对话框错误 JOptionPane

java - Hibernate 批量插入内存泄漏

java - 如何在使用大量记录时使用 Hibernate 更快地进行更新

java - jvm 崩溃.. 可用内存不足? (1.6)

java - 将带值的字符串与带占位符的字符串进行比较以从中查找值

Hibernate 列名参数绑定(bind)

java - hibernate 时无法保存数据

java - 在 HQL 中查询标量集合

Hibernate HQL 映射异常列名