r209 - in trunk: . tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/service tutti-persistence-adagio/src/main/resources tutti-persistence-adagio/src/test/java/fr/ifremer/tutti/persistence/service
Author: blavenier Date: 2013-01-15 17:11:50 +0100 (Tue, 15 Jan 2013) New Revision: 209 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/209 Log: ref refs #1920: [Persistence] Adagio Donn?\195?\169es th?\195?\169matiques - Add implementation of CruisePersistenceServiceImpl.saveCruise() Modified: trunk/ trunk/tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java trunk/tutti-persistence-adagio/src/main/resources/queries-override.hbm.xml trunk/tutti-persistence-adagio/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceTest.java Property changes on: trunk ___________________________________________________________________ Modified: svn:ignore - target .idea *.ipr *.iws *.iml *.log + target .idea *.ipr *.iws *.iml *.log *.bat Modified: trunk/tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java =================================================================== --- trunk/tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java 2013-01-15 11:55:11 UTC (rev 208) +++ trunk/tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java 2013-01-15 16:11:50 UTC (rev 209) @@ -52,6 +52,7 @@ import javax.annotation.Resource; import java.sql.Timestamp; +import java.text.MessageFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; @@ -219,16 +220,13 @@ // get secondary gears from fishingOperation (first load from Allegro DB only) if (result.getGear() == null) { Iterator<Object[]> list = queryList( - "cruiseGears", - "cruiseId", StringType.INSTANCE, id); + "allCruiseGears", + "cruiseId", IntegerType.INSTANCE, Integer.valueOf(id)); List<Gear> gears = Lists.newArrayList(); while (list.hasNext()) { - Object[] zoneSource = list.next(); - Gear target = new Gear(); - target.setId(String.valueOf(zoneSource[0])); - target.setLabel((String) zoneSource[1]); - target.setName((String) zoneSource[2]); + Object[] gearRow = list.next(); + Gear target = referentielService.getGear((Integer)gearRow[0]); gears.add(target); } result.setGear(gears); @@ -250,7 +248,16 @@ @Transactional(readOnly = false) @Override public Cruise saveCruise(Cruise bean) { - throw new UnsupportedOperationException(); + if (bean.getId() == null || bean.getId().isEmpty()) { + throw new IllegalArgumentException("Cruise 'id' must not be null or empty to be saved."); + } + ScientificCruise scientificCruise = scientificCruiseDao.load(Integer.valueOf(bean.getId())); + if (scientificCruise == null) { + throw new DataRetrievalFailureException("Could not retrieve cruise with id=" + bean.getId()); + } + + cruiseToEntity(bean, scientificCruise, true); + return bean; } protected void cruiseToEntity(Cruise source, ScientificCruise target, boolean copyIfNull) { @@ -362,6 +369,9 @@ fishingTrip.setScientificCruise(target); } } + else { + fishingTrip = target.getFishingTrips().iterator().next(); + } // Fill fishing trip with scientificCruise info: fishingTrip.setDepartureDateTime(target.getDepartureDateTime()); Modified: trunk/tutti-persistence-adagio/src/main/resources/queries-override.hbm.xml =================================================================== --- trunk/tutti-persistence-adagio/src/main/resources/queries-override.hbm.xml 2013-01-15 11:55:11 UTC (rev 208) +++ trunk/tutti-persistence-adagio/src/main/resources/queries-override.hbm.xml 2013-01-15 16:11:50 UTC (rev 209) @@ -129,7 +129,8 @@ <query cacheable="true" name="allCruiseGears"> <![CDATA[ SELECT - gpf.gear.id AS gearId + gpf.gear.id AS gearId, + count(o.id) as operationCount FROM ScientificCruiseImpl sc JOIN sc.fishingTrips ft @@ -137,6 +138,9 @@ LEFT OUTER JOIN gpf.operations o WHERE sc.id = :cruiseId + GROUP BY + gpf.gear.id + ORDER BY count(o.id) DESC ]]> <query-param name="cruiseId" type="java.lang.Integer"/> </query> Modified: trunk/tutti-persistence-adagio/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceTest.java =================================================================== --- trunk/tutti-persistence-adagio/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceTest.java 2013-01-15 11:55:11 UTC (rev 208) +++ trunk/tutti-persistence-adagio/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceTest.java 2013-01-15 16:11:50 UTC (rev 209) @@ -89,7 +89,6 @@ Assert.assertNotNull(result); } - @Ignore @Test public void createCruise(/*Cruise bean*/) { String programCode = dbResource.getFixtures().programCode(); @@ -159,7 +158,6 @@ Cruise reloadedCruise = service.getCruise(createdCruise.getId()); - //TODO-TC This is not working, reloadedCruise is not null,... assertEquals(createdCruise.getBeginDate(), reloadedCruise.getBeginDate()); assertEquals(createdCruise.getEndDate(), reloadedCruise.getEndDate()); assertEquals(createdCruise.getComment(), reloadedCruise.getComment()); @@ -176,6 +174,19 @@ @Test public void saveCruise(/*Cruise bean*/) { + Cruise cruise = service.getCruise(dbResource.getFixtures().cruiseId()); + + cruise.setId(null); + cruise = service.createCruise(cruise); + + cruise.setName("unit-TEST"); + Cruise savedCruise = service.saveCruise(cruise); + assertNotNull(savedCruise); + assertEquals(cruise.getId(), savedCruise.getId()); + assertEquals(cruise.getName(), savedCruise.getName()); + assertEquals(cruise.getComment(), savedCruise.getComment()); + assertNotNull(cruise.getGear()); + assertEquals(cruise.getGear().size(), savedCruise.getGear().size()); } }
participants (1)
-
blavenier@users.forge.codelutin.com