So I'm trying to get all columns of 2 tables into my custom created class without looping into the array. But I cant make it work.
Here is my classes:
SampleForm:
public class SampleForm {
List<Tbaudittrail> audittrail;
List<Tbauditevents> auditevents;
public SampleForm(List<Tbaudittrail> audittrail, List<Tbauditevents> auditevents) {
super();
this.audittrail = audittrail;
this.auditevents = auditevents;
}
public List<Tbaudittrail> getAudittrail() {
return audittrail;
}
public void setAudittrail(List<Tbaudittrail> audittrail) {
this.audittrail = audittrail;
}
public List<Tbauditevents> getAuditevents() {
return auditevents;
}
public void setAuditevents(List<Tbauditevents> auditevents) {
this.auditevents = auditevents;
}
Tbaudittrail:
public class Tbaudittrail {
private Integer audittrailid;
private String eventname;
private String eventdescription;
private String username;
private Date eventdatetime;
public Tbaudittrail(Integer audittrailid, String eventname, String eventdescription, String username,
Date eventdatetime) {
super();
this.audittrailid = audittrailid;
this.eventname = eventname;
this.eventdescription = eventdescription;
this.username = username;
this.eventdatetime = eventdatetime;
}
public Tbaudittrail() {
}
public Integer getAudittrailid() {
return audittrailid;
}
public void setAudittrailid(Integer audittrailid) {
this.audittrailid = audittrailid;
}
public String getEventname() {
return eventname;
}
public void setEventname(String eventname) {
this.eventname = eventname;
}
public String getEventdescription() {
return eventdescription;
}
public void setEventdescription(String eventdescription) {
this.eventdescription = eventdescription;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public Date getEventdatetime() {
return eventdatetime;
}
public void setEventdatetime(Date eventdatetime) {
this.eventdatetime = eventdatetime;
}
Tbauditevents:
public class Tbauditevents {
private Integer eventid;
private String eventname;
public Tbauditevents(Integer eventid, String eventname) {
super();
this.eventid = eventid;
this.eventname = eventname;
}
public Tbauditevents() {
}
public Integer getEventid() {
return eventid;
}
public void setEventid(Integer eventid) {
this.eventid = eventid;
}
public String getEventname() {
return eventname;
}
public void setEventname(String eventname) {
this.eventname = eventname;
}
Using SELECT new
Query query = session.createQuery("SELECT new com.project.audit.forms.SampleForm(audittrail,auditevents) FROM Tbaudittrail audittrail,Tbauditevents auditevents WHERE auditevents.eventid=audittrail.audittrailid");
List<SampleForm> customList = query.list();
I got this error :
org.hibernate.PropertyNotFoundException: no appropriate constructor in class: com.project.audit.forms.SampleForm]
I've also tried using ResultTransformer but is not working.
Tbaudittrail and Tbauditevents are mapped while SampleForm is not. I'm using MS SQL SERVER.