我是休眠新手并尝试使用标准。我坚持从 2 个表中获取结果,即主外键实际存在的表。
我有 Carpooler 和 SourceToDestinationDetails DTO,现在根据用户搜索数据,我想填充包含 SourceToDestinationDetails 的 Carpooler 对象,但我没有得到它,也不知道如何使用 Criteria API 来完成。
public class Carpooler implements Serializable{
private long carpoolerId;
private String drivingLicenceNumber=null;
private String userType=null;![enter image description here][1]
private User user=null;
private List<VehicleDetails> listOfVehicleDetails=null;
private List<SourceToDestinationDetails> listOfSourceToDestinationDetails=null;
private Date carpoolerCreationDate;
}
public class SourceToDestinationDetails implements Serializable{
private static final long serialVersionUID = -7158985673279885525L;
private long sourceToDestinationId;
private String sourcePlace=null;
private String destinationPlace=null;
private String inBetweenPlaces=null;
private String sourceLeavingTime=null;
}
这是我写的,
Criteria criteria1 = getSession().createCriteria(SourceToDestinationDetails.class);
criteria1.add(Restrictions.like("sourcePlace", "%" + from + "%"));
criteria1.add(Restrictions.like("destinationPlace", "%" + to + "%"));
List<SourceToDestinationDetails> listOfExactMatchCarpooler = criteria1.list();
通过上面的 Criteria API,我只获取 SourceToDestinationDetails DTO 记录,但现在我也需要拼车记录,我不知道如何在 SourceToDestinationDetails 表中获取匹配 Carpooler_id 的拼车记录。
我的意思是如果用户给出,
String from = "Bellandur";
String to = "Silk Board";
那么结果应该是List<Carpooler>
对象,其中包含所有匹配的 SourceToDestinationDetails 列表。