有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Hibernate HQL:与OnetoOne左连接

我有以下实体级产品:

@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可以为空,我还需要返回这些行。我不知道如何使用p.cas.casNumber在这个表上写左连接

我很感激你能提供的任何帮助。谢谢!


共 (1) 个答案

  1. # 1 楼答案

    你可以尝试以下方法:

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