簡體   English   中英

即使外鍵在HQL中為null,也返回數據

[英]Return data even if the foreign key is null in HQL

我有一個Product表,該ProductCategory表通過@ManyToOne@OneToMany關系連接到ProductCategory表。 Product

@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "category_id")
@NotFound(action=NotFoundAction.IGNORE)
private ProductCategory productCategory;

Category

@OneToMany(fetch = FetchType.LAZY, mappedBy="productCategory" ,cascade = {CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH})
@JsonBackReference
@OrderBy("id desc")
private Set<Product> products = new HashSet<Product>(); 

我有這個存儲庫方法,可以從Product表中檢索數據:

@Query("SELECT p from Product p where cast(p.id as string) like :x or p.name like :x or p.description like :x or p.sku like :x or p.productCategory.name like :x")
public Page<Product> search(@Param("x") String keyword, Pageable pageable);

此方法不返回類別為nu​​ll的產品。 即使在productCategory列上為空,如何檢索產品。

我通過LEFT JOIN查詢添加(實際上) LEFT JOIN來解決了這個問題:

"SELECT p from Product p left join p.productCategory where cast(p.id as string) like :x or p.name like :x or p.description like :x or p.sku like :x or p.productCategory.name like :x"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM