[Suiviobsmer-commits] r580 - in trunk: . wao-business/src/main/java/fr/ifremer/wao wao-business/src/main/java/fr/ifremer/wao/service wao-business/src/main/xmi
Author: fdesbois Date: 2010-06-29 14:20:31 +0000 (Tue, 29 Jun 2010) New Revision: 580 Log: Evo #2352 : Cartography for contacts : - Uncomment migration + create only one query for insertion - Resolve Warning on TopiaQuery addEquals usage - Use EntityProperty for getLastActivityCalendar - Change lazy managment for shipOwner and add boatDistrict Modified: trunk/pom.xml trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceBoatImpl.java trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceUserImpl.java trunk/wao-business/src/main/xmi/wao.properties trunk/wao-business/src/main/xmi/wao.zargo Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2010-06-29 11:57:12 UTC (rev 579) +++ trunk/pom.xml 2010-06-29 14:20:31 UTC (rev 580) @@ -242,7 +242,7 @@ <nuitonutils.version>1.3.1</nuitonutils.version> <nuitonweb.version>0.1</nuitonweb.version> <topia.version>2.3.5-SNAPSHOT</topia.version> - <eugene.version>2.0.3-SNAPSHOT</eugene.version> + <eugene.version>2.1-SNAPSHOT</eugene.version> <tapestry.version>5.1.0.5</tapestry.version> </properties> Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java 2010-06-29 11:57:12 UTC (rev 579) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java 2010-06-29 14:20:31 UTC (rev 580) @@ -206,27 +206,39 @@ } @Override - protected Map<String, String> insertBoatDistricts_1_5c(List<String> queries, Map<String, List<String>> boatDistrictCodes) { + protected Map<String, String> insertBoatDistricts_1_5c(List<String> queries, + Map<String, List<String>> boatDistrictCodes) { Map<String, String> boats = new HashMap<String, String>(); DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S"); Set<String> codes = boatDistrictCodes.keySet(); + + StringBuilder query = new StringBuilder("INSERT INTO BoatDistrict VALUES "); + String separator = ""; + for (String code : codes) { // FIXME-fdesbois-2010-06-29 : Seems dangerous to use class, maybe it's better to use full qualified name 'fr.ifremer.wao.entity.BoatDistrict' String districtId = TopiaId.create(BoatDistrict.class); String createDate = dateFormat.format(new Date()); - queries.add(String.format( - "INSERT INTO BoatDistrict VALUES ('%s', %d, '%s', '%s', null, null, null);", +// queries.add(String.format( +// "INSERT INTO BoatDistrict VALUES ('%s', %d, '%s', '%s', null, null, null);", +// districtId, 0, createDate, code) +// ); + query.append(separator).append(String.format( + "('%s', %d, '%s', '%s', null, null, null)", districtId, 0, createDate, code) ); + separator = ", "; for (String boatId : boatDistrictCodes.get(code)) { boats.put(boatId, districtId); } } + queries.add(query.append(';').toString()); + return boats; } Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java 2010-06-29 11:57:12 UTC (rev 579) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java 2010-06-29 14:20:31 UTC (rev 580) @@ -198,20 +198,20 @@ } } -// List<String> queries = new ArrayList <String>(); -// -// // Create the boatDistrict table -// createBoatDistrictTable_1_5b(queries); -// -// // Insert boatDistrict using the previous map. -// // This will return boats with boatDisctrict id in value -// Map<String, String> boats = insertBoatDistricts_1_5c(queries, boatDistrictCodes); -// -// // Update the Boat table with id of district (create column as foreign key) -// updateBoatWithBoatDistrict_1_5d(queries, boats); -// -// String[] strings = queries.toArray(new String[queries.size()]); -// executeSQL(tx, showSql, showProgression, strings); + List<String> queries = new ArrayList <String>(); + + // Create the boatDistrict table + createBoatDistrictTable_1_5b(queries); + + // Insert boatDistrict using the previous map. + // This will return boats with boatDisctrict id in value + Map<String, String> boats = insertBoatDistricts_1_5c(queries, boatDistrictCodes); + + // Update the Boat table with id of district (create column as foreign key) + updateBoatWithBoatDistrict_1_5d(queries, boats); + + String[] strings = queries.toArray(new String[queries.size()]); + executeSQL(tx, false, false, strings); } } Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceBoatImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceBoatImpl.java 2010-06-29 11:57:12 UTC (rev 579) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceBoatImpl.java 2010-06-29 14:20:31 UTC (rev 580) @@ -182,6 +182,7 @@ } // load data boatInfos.getBoat().sizeActivityCalendar(); + boatInfos.getBoat().getShipOwner(); result.setBoatInfos(boatInfos); @@ -599,50 +600,27 @@ ActivityCalendarDAO dao = WaoDAOHelper.getActivityCalendarDAO(transaction); - // Properties needed for query and subQuery - String calendarAlias = WaoQueryHelper.ALIAS_ACTIVITY_CALENDAR; - String calendarBoatProperty = - TopiaQuery.getProperty(calendarAlias, ActivityCalendar.BOAT); - String calendarYearProperty = - TopiaQuery.getProperty(calendarAlias, ActivityCalendar.YEAR); + WaoQueryHelper.ActivityCalendarProperty calendarProperty = + WaoQueryHelper.newActivityCalendarProperty(); - String maxCalendarAlias = "max" + calendarAlias; - String maxCalendarBoatProperty = - TopiaQuery.getProperty(maxCalendarAlias, ActivityCalendar.BOAT); - String maxCalendarYearProperty = - TopiaQuery.getProperty(maxCalendarAlias, ActivityCalendar.YEAR); + WaoQueryHelper.ActivityCalendarProperty maxCalendarProperty = + WaoQueryHelper.newActivityCalendarProperty( + WaoQueryHelper.ALIAS_ACTIVITY_CALENDAR + "2"); // Prepare subQuery - TopiaQuery subquery = dao.createQuery(maxCalendarAlias). - setSelect(new StringBuilder("MAX("). - append(maxCalendarYearProperty). - append(')'). - toString() - ). - addWhere(new StringBuilder(maxCalendarBoatProperty). - append(" = "). - append(calendarBoatProperty). - toString() - ). - // addWhere("$1 = $2", maxCalendarBoatProperty, calendarBoatProperty); - addGroup(maxCalendarBoatProperty); + TopiaQuery subquery = dao.createQuery(maxCalendarProperty.$alias()). + setSelect(WaoQueryHelper.format("MAX($1)", maxCalendarProperty.year())). + addWhere(WaoQueryHelper.format("$1 = $2", + maxCalendarProperty.boat(), calendarProperty.boat())). + addGroup(maxCalendarProperty.boat()); // Create main query - TopiaQuery query = dao.createQuery(calendarAlias). - addEquals(calendarBoatProperty, boat). - addSubQuery(calendarYearProperty + " = (?)", subquery). - addLoad(ActivityCalendar.BOAT); + TopiaQuery query = dao.createQuery(calendarProperty.$alias()). + addEquals(calendarProperty.boat(), boat). + addSubQuery(WaoQueryHelper.format( + "$1 = (?)", calendarProperty.year()), subquery). + addLoad(calendarProperty.boat()); -// TopiaQuery query = dao.createQuery("A"). -// add("A." + ActivityCalendar.BOAT, boat); -// -// TopiaQuery subquery = dao.createQuery("B"). -// setSelect("MAX(B." + ActivityCalendar.YEAR + ")"). -// add("B." + ActivityCalendar.BOAT + " = A." + ActivityCalendar.BOAT). -// addGroup("B." + ActivityCalendar.BOAT); -// -// query.add("A." + ActivityCalendar.YEAR + " = (" + subquery.fullQuery() + ")"); - result = dao.findByQuery(query); // load other complex data from collections Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceUserImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceUserImpl.java 2010-06-29 11:57:12 UTC (rev 579) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceUserImpl.java 2010-06-29 14:20:31 UTC (rev 580) @@ -383,7 +383,7 @@ UserRole.getMatchCodes(UserRole.OBSERVER, UserRole.COORDINATOR); TopiaQuery query = dao.createQuery(). - addEquals(WaoUser.ROLE, matchCodes). + addEquals(WaoUser.ROLE, (Integer[])matchCodes). addOrder(WaoUser.FIRST_NAME, WaoUser.LAST_NAME); if (company != null) { Modified: trunk/wao-business/src/main/xmi/wao.properties =================================================================== --- trunk/wao-business/src/main/xmi/wao.properties 2010-06-29 11:57:12 UTC (rev 579) +++ trunk/wao-business/src/main/xmi/wao.properties 2010-06-29 14:20:31 UTC (rev 580) @@ -23,7 +23,8 @@ fr.ifremer.wao.entity.FishingZone.attribute.sampleRow.tagvalue.orderBy=code -fr.ifremer.wao.entity.Boat.attribute.shipOwner.tagvalue.lazy=false +#fr.ifremer.wao.entity.Boat.attribute.shipOwner.tagvalue.lazy=false +fr.ifremer.wao.entity.Boat.attribute.boatDistrict.tagvalue.lazy=false fr.ifremer.wao.entity.Boat.attribute.elligibleBoat.tagvalue.orderBy=companyActive fr.ifremer.wao.entity.ElligibleBoat.attribute.boat.tagvalue.lazy=false Modified: trunk/wao-business/src/main/xmi/wao.zargo =================================================================== (Binary files differ)
participants (1)
-
fdesbois@users.labs.libre-entreprise.org