【发布时间】:2017-08-29 10:24:44
【问题描述】:
这里我有两个表users 和orders,users 有两个字段first_name 和last_name,而orders 有一个字段full_name。由于某种原因,我无法更改数据库架构。
现在我有一个问题:
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)
}
这可行吗?
谢谢
【问题讨论】:
标签: java hibernate spring-data-jpa jpa-criteria