在這裏,我有兩個表users
和orders
,users
有兩個字段first_name
和last_name
,並orders
有一個字段full_name
。出於某種原因,我無法更改數據庫模式。如何使用JPA標準離開兩個不相關的表?
現在我有一個查詢:
SELECT u.* FROM users u LEFT JOIN orders o ON o.full_name = CONCAT(u.first_name, ' ', u.last_name)
我需要轉換成JPA規範這一點,因爲這是其他規格的一部分。以下是我的嘗試:
實體:
@Entity
@Table(name = "users")
class User {
@Id
private Integer id;
@Column(name = "first_name")
private String firstName;
@Column(name = "last_name")
private String lastName;
}
@Entity
@Table(name = "orders")
class Order {
@Id
private Integer orderId;
@Column(name = "full_name")
private String fullName;
}
的問題是,我應該怎麼填寫以下語句將第一個參數
(root, query, criteraBuilder) -> {
Join<User,Order> join = root.join(???,JoinType.LEFT);
join.on(blablabla_condition)
}
這是可行的?
感謝
謝謝。從來不知道Joinformula,非常有趣。試一試 – haohaolee
如果你覺得這個答案有幫助,你可以upvote和/或接受它 – dimitrisli
我會接受它後,我會嘗試;) – haohaolee