gpt4 book ai didi

java - 根据子实体类型查询

转载 作者:太空宇宙 更新时间:2023-11-04 11:52:10 25 4
gpt4 key购买 nike

假设我有一个如下所示的实体:

@Entity
public class Garage {
...
@Column(unique = true, nullable = false)
private String garageId;

@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "garage")
private Set<Vehicle> vehicles = new HashSet<>();

...
}

车辆实体如下所示:

@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class Vehicle{

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


@ManyToOne(optional = false, fetch = FetchType.LAZY)
@JoinColumn(name = "garage_id", referencedColumnName = "garageId", nullable = false)
private Garage garage;

我有两个继承自车辆的子实体,它们可能如下所示

@Entity
public class Truck extends Vehicle {
...
}


@Entity
public class Motorcycle extends Vehicle {
...
}

在 Spring Data JPA 中,我如何查询包含摩托车的车库?同时抛出另一个问题,有没有办法强制车库每个子实体只能有一个? (一个车库可以容纳 1 辆卡车 + 1 辆摩托车,但特定车辆不得超过 1 辆)

最佳答案

我假设您有一个 Garage 存储库,在该界面中定义以下方法。

List<Garage> findByVehicles(Vehicle vehicle);

然后,假设您有一个名为 Motorola 的 Motorcyle 实例,您可以使用以下命令来调用它:

List<Garage> garagesWithMotorcyle = garageRepository.findByVehicles(motorcyle);

关于java - 根据子实体类型查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41701838/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com