JPA可以使用注解进行多表关联
一、多对一 @ManyToOne
User表
@Data
@Entity
@JsonIgnoreProperties({"hibernateLazyInitializer","handler"})
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String name;
private Integer age;
@ManyToOne
@JoinColumn(name="work_id") //work_id是user表中的外键
private Work work; //work是user表的关联表
}
Work表
@Data
@Entity
@JsonIgnoreProperties({"hibernateLazyInitializer","handler"})
public class Work {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String name;
}
service层(还是使用自带的save方法)
@Transactional
public User save(User user){
return userDao.save(user);
}
control层
/**
* 单条数据添加
* @param id
* @param name
* @param age
* @param work_id user的外键,也是work的id
* @return 返回添加的user数据
*/
@GetMapping("/save")
public User save(Integer id,String name, Integer age,Integer work_id){
User user = new User();
Work work = new Work();
user.setId(id);
user.setName(name);
user.setAge(age);
work.setId(work_id);
user.setWork(work);
return userService.save(user);
}
测试成功!
总共进行了三条jpql语句