[Java lista] JPQL Result Type of the SELECT Clause
Szomor Attila
aszomor at computertechnika.hu
2010. Már. 12., P, 16:48:00 CET
2010.03.12. 16:26:59 dátumon Verhás István <istvan at verhas.com> írta:
> Amire te vágysz az a lazy loading. Ezt támogatj a JPA ha az attributum
> nem primitív hanem entitás. Az alapértelmezett fetch type a kapcsolat
> számosságától függ. Ha a túloldalból csak egy van akkor eager vagyis
> betölti, ha sok akkor lazy. Szóval a sokkal nem kell törődni azt eleve
> nem tölti be csak amikor meghívod a gettert, az egy az egyes illetve az
> n az egyes-nél pedig be lehet állítani pl. így
> @OneToOne(fetch=FetchType.LAZY)
> Ezt kérdezted?
> üdv
> vi
Sajna nem, ezt (és még sok ilyet) szeretném elkerülni:
------------------------------------------------------
String query = "SELECT e FROM TerapiaTerap e";
if (gridParams.getOtherGridParams().containsKey("GENERIC_GRID_QUERY")) {
query = "SELECT e.id,e.tenam,e.tecna,e.teflg FROM TerapiaTerap e";
}
response = JPAUtils.getBlockFromQuery(
gridParams.getAction(),
gridParams.getStartPos(),
blockSize,
gridParams.getFilteredColumns(),
gridParams.getCurrentSortedColumns(),
gridParams.getCurrentSortedVersusColumns(),
TerapiaTerap.class,
query,
new Object[0],
em
);
if (gridParams.getOtherGridParams().containsKey("GENERIC_GRID_QUERY")) {
// EZ AZ AMIT NEM SZERETNÉK !!!
VOListResponse voListResponse = (VOListResponse)response;
ArrayList<TerapiaTerap> terapiaList = new ArrayList<TerapiaTerap>();
List rows = voListResponse.getRows();
for (int c=0; c<rows.size(); c++) {
TerapiaTerap terapiaTerap = new TerapiaTerap();
Object[] row = (Object[])rows.get(c);
terapiaTerap.setId((BigInteger)row[0]);
terapiaTerap.setTenam((String)row[1]);
terapiaTerap.setTecna((String)row[2]);
terapiaTerap.setTeflg((String)row[3]);
terapiaList.add(terapiaTerap);
}
response = new
VOListResponse(terapiaList,voListResponse.isMoreRows(),voListResponse.getResultSetLength());
// EDDIG TART A TRANSFORMÁCIÓ OBJECT[] to ArrayList<TerapiaTerap> $$$
}
return response;
mivel a JPA válasz egy "Object[]" nem pedig egy "TerapiaTerap" osztály a
kért négy attributummal feltöltve (sajnos)!
Ami miatt érdekel ennek a táblának száznál több egyszerú attributuma van,
amiből a kliensnek 4 kell abból is kettő hidden a grid-ben.
--
Pécs is the European Capital of Culture in 2010
További információk a(z) Javalist levelezőlistáról