user_vehicle is my non-persistent DTO class and i am trying to fetch a set of records of the same class using hibernate SQLQuery .
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
}
code for fetching the records
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()));
I am getting error as Exception in thread "main" org.hibernate.PropertyNotFoundException: Could not find setter for vehicle.vehicleName on class user_vehicle.
user_details and vehicle table doesn't have any relation.
i am doing this, so that i can access vehicleName as
list.forEach(t->System.out.println(t.getVehicle().getVehicleName()));
Here are my user_details entity class
@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
}