【发布时间】:2020-05-16 02:30:41
【问题描述】:
您好,我有父实体 User,它与 Vehicle 实体具有一对多关系,而 Vehicle 实体与 User 具有多对一关系。我的车辆表中有一个外键“user_fk”。我有一个 UserRepository,它扩展了 Spring Data JPARepository,它具有 save 和 findById 方法。
此外,我在车辆表中有两个属性可以唯一标识车辆,我需要使用该数据来找出相应的用户对象。我知道这可以通过创建扩展 JPA 存储库并可以使用的车辆存储库来简单地完成通过方法查找,但我不想创建新的车辆存储库类只是为了实现此功能。如何在不创建 Vehicle Repository 的情况下找到 User_fk 列值或 User 对象?我可以使用 UserRepository 来实现吗?
我的用户类:
@Entity
@Table(name = "usr")
class User{
@Id
@Column(name = "user_id", updatable = false, nullable = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long userId;
private String username;
@OneToMany(mappedBy = "user",cascade = CascadeType.ALL)
private List<Vehicle> vehicles= new ArrayList<>();
//getters and setters
}
我的车辆类别:
@Entity
@Table(name = "vehicle")
class Vehicle{
@Id
@Column(name = "vehicle_id", updatable = false, nullable = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long vehicleId;
private String vehicleName;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "user_fk" , nullable = false)
private User user;
//getters and setters
}
我有 vehicleId 和 vehicleName 的值,我想从这两个属性值中获取 User 对象。
我不想仅仅为了找到 User 对象而创建车辆存储库。我知道可以通过创建一个扩展 springdatajpa 中的 JPA 存储库的车辆存储库来实现。
【问题讨论】:
标签: java spring-boot spring-data-jpa