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