如何从 Spring Jpa 中的数据库中获取两个连接表?

How get two joined tables from database in Spring Jpa?

我有两个表,彼此相连。我如何使用 Spring 数据 jpa 从数据库中获取它们?

代码如下,

@Entity
@JsonNaming(PropertyNamingStrategies.UpperSnakeCaseStrategy.class)
public class Employee {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

private String name;
private String phone;
@Enumerated(EnumType.STRING)
private Position position;
private BigDecimal salary;

@OneToOne(mappedBy = "employee", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
private Car car;
}


@Entity
@JsonNaming(PropertyNamingStrategies.UpperSnakeCaseStrategy.class)
public class Car {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

private String model;
private String color;
private double price;

@OneToOne
@JoinColumn(name = "employee_id")
private Employee employee;
}

 // my serice:
@Override
public Employee findEmployeeByName(String name) {
    return employeeRepository.getEmployeeByName(name);
}

结果: result

你能解释一下你到底想要什么吗?就像如果您只想在 return 是您的一个表的查询中使用这两个表(例如员工姓名的汽车),则没有问题。但是如果你想 return 来自两个表的列,你可以看看这个答案 它展示了如何处理这个问题。

由于您已经指定了 fetchType Eager,因此每当您获取任何对象 car 或 employee 时,您将获得这两个对应对象的所有数据。