user_vehicle是我的非持久DTO类,我试图使用hibernate SQLQuery获取同一类的一组记录。用于获取记录hibernate.PropertyNotFoundException:无法找到具有多级映射的setter Transformer
String sql = "select a.user_name as username ,b.vehiclename as \"vehicle.vehicleName\" "
+ "from user_details a inner join vehicle b on a.user_year = b.vehicleyear;";
SQLQuery query = session.createSQLQuery(sql);
query.addScalar("username",StringType.INSTANCE);
query.addScalar("vehicle.vehicleName",StringType.INSTANCE);
query.setResultTransformer(Transformers.aliasToBean(user_vehicle.class));
List<user_vehicle> list = query.list();
list.forEach(t->System.out.println(t.getUsername()+" -- "+t.getVehicle()));
我得到错误的 异常线程 “main” org.hibernate.PropertyNotFoundException
public class user_vehicle {
private Integer userid;
private String username;
private Integer userYear;
//here is the problem
private Vehicle vehicle;
//getter and setter
}
public class Vehicle {
private Integer vehicleId;
private String vehicleName;
private Integer vehicleYear;
//getter setter
}
代码:找不到制定者vehicle.vehicleName阶级user_vehicle 。
user_details and vehicle表没有任何关系。
我这样做,这样我可以访问vehicleName作为
list.forEach(t->System.out.println(t.getVehicle().getVehicleName()));
这里是我的user_details实体类
@Entity(name = "User_Details")
public class User {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="user_id")
private Integer userid;
@Column(name="user_name")
private String username;
@Column(name="user_year")
private Integer userYear;
//getter and setter
}
@Entity
@Table(name = "Vehicle", catalog = "public", schema = "")
public class VehicleDetails {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer vehicleId;
@Column
private String vehicleName;
@Column
private Integer vehicleYear;
//getter and setter
}
我不想复制所有车辆类别属性user_vehicle和b.vehiclename改变我的SQL作为\“车辆.vehicleName \“以b.vehicleName作为vehicleName。 –
我没有得到你 – developer