【发布时间】:2020-06-30 19:48:27
【问题描述】:
我正在传递一组车辆名称,例如['car','jeep','truck','bike'],并希望使用条件查询在此列表中选择拥有vehicles 的车主,这里的车主可以拥有多个vahicles (OneToMany)。我有一个限制,我需要使用 Criteria 查询。
class Owner {
@ID
@GeneratedValue(strategy = IDENTITY)
@Column(name = "owner_id")
private Long ownerId;
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "owner_id")
private Set<Vehicles> vehicles;
}
class Vehicles {
@ID
@GeneratedValue(strategy = IDENTITY)
@Column(name = "vehicle_id")
private Long vehicleId;
@ManyToOne
@JoinColumn(name = "owner_id")
private Owner owner;
@Column(name="vehicle_name")
private String vehicleName;
}
以下是我尝试过但没有成功的方法
Criteria criteria = getSession().createCriteria(Owner.class);
criteria.createAlias("vehicles", "vehicles");
criteria.add(Restrictions.in("vehicles.vehicleName", setOfVehicles));
criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
【问题讨论】:
-
你用的是什么休眠版本?
-
休眠版本为 5.x
标签: hibernate hibernate-criteria