I have 2 tables say
Table1 and Table2
Now Table1 has 3 columns say t1, t2, t3 and Table2 has 2 columns t4 and t5.
I have to fetch data from both tables by join but there is no mapped association between two tables in annotation or xml.
Now main issue is I have to use hibernate projection to fetch selected columns from both tables say t1,t2 from Table1 and t4 from Table2.
I have gone through the internet but have found examples of tables with association.
Glad if there will be any guidance on this.
Yes, this is supported in Hibernate. The only thing here is that we have to use HQL:
- 16.2. The from clause (cite:)
Multiple classes can appear, resulting in a cartesian product or "cross" join.
from Formula, Parameter
from Formula as form, Parameter as param
So in our case:
session
.createQuery("SELECT t1.prop1, t1.prop2, t1.prop3 "
+ " t2.prop4, t2.prop5 "
+ " FROM Entity1 AS t1, Entity2 As t2 " +
// if there is some relation - unmapped
+ " WHERE t1.someProperty = t2.someProperty "
+ " AND ... "
)
.setMaxResults(10) // we can even page here
.list()
NOTE: I used prop1, prop2 and Entity1, Entity2 ... to force the feeling that this is HQL. We are talking about mapped entities, not tables or columns
And we will recieve collection of object[]
array...
来源:https://stackoverflow.com/questions/25679783/hibernate-criteria-projection-without-mapped-association-of-tables