ItEr22S08CUAltaCalendarioLaboralItEr21S10: Added new method findByParent to BaseCalendarDAO.
This commit is contained in:
parent
e86894d68d
commit
c0179bc2a9
4 changed files with 50 additions and 0 deletions
|
|
@ -1,7 +1,10 @@
|
|||
package org.navalplanner.business.calendars.daos;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.hibernate.Criteria;
|
||||
import org.hibernate.criterion.Restrictions;
|
||||
import org.navalplanner.business.calendars.entities.BaseCalendar;
|
||||
import org.navalplanner.business.common.daos.GenericDAOHibernate;
|
||||
import org.springframework.beans.factory.config.BeanDefinition;
|
||||
|
|
@ -23,4 +26,16 @@ public class BaseCalendarDAO extends GenericDAOHibernate<BaseCalendar, Long>
|
|||
return list(BaseCalendar.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BaseCalendar> findByParent(BaseCalendar baseCalendar) {
|
||||
if (baseCalendar == null) {
|
||||
return new ArrayList<BaseCalendar>();
|
||||
}
|
||||
|
||||
Criteria c = getSession().createCriteria(BaseCalendar.class);
|
||||
c.add(Restrictions.eq("parent", baseCalendar));
|
||||
|
||||
return (List<BaseCalendar>) c.list();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,4 +9,6 @@ public interface IBaseCalendarDAO extends IGenericDAO<BaseCalendar, Long> {
|
|||
|
||||
List<BaseCalendar> getBaseCalendars();
|
||||
|
||||
List<BaseCalendar> findByParent(BaseCalendar baseCalendar);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package org.navalplanner.business.common.daos;
|
|||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import org.navalplanner.business.calendars.entities.BaseCalendar;
|
||||
import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -10,6 +10,8 @@ import static org.junit.Assert.fail;
|
|||
import static org.navalplanner.business.BusinessGlobalNames.BUSINESS_SPRING_CONFIG_FILE;
|
||||
import static org.navalplanner.business.test.BusinessGlobalNames.BUSINESS_SPRING_CONFIG_TEST_FILE;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.hibernate.SessionFactory;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
|
@ -149,4 +151,34 @@ public class BaseCalendarDAOTest {
|
|||
baseCalendarDAO.find(newCalendar.getId());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void findChildrens() {
|
||||
BaseCalendar calendar = BaseCalendarTest.createBasicCalendar();
|
||||
baseCalendarDAO.save(calendar);
|
||||
BaseCalendar derivedCalendar = calendar.newDerivedCalendar();
|
||||
baseCalendarDAO.save(derivedCalendar);
|
||||
BaseCalendar derivedCalendar2 = calendar.newDerivedCalendar();
|
||||
baseCalendarDAO.save(derivedCalendar2);
|
||||
|
||||
baseCalendarDAO.flush();
|
||||
session.getCurrentSession().evict(calendar);
|
||||
session.getCurrentSession().evict(derivedCalendar);
|
||||
session.getCurrentSession().evict(derivedCalendar2);
|
||||
|
||||
calendar.dontPoseAsTransientObjectAnymore();
|
||||
derivedCalendar.dontPoseAsTransientObjectAnymore();
|
||||
derivedCalendar2.dontPoseAsTransientObjectAnymore();
|
||||
|
||||
List<BaseCalendar> children = baseCalendarDAO.findByParent(calendar);
|
||||
assertThat(children.size(), equalTo(2));
|
||||
assertTrue(children.get(0).getId().equals(derivedCalendar.getId())
|
||||
|| children.get(0).getId().equals(derivedCalendar2.getId()));
|
||||
|
||||
children = baseCalendarDAO.findByParent(derivedCalendar);
|
||||
assertThat(children.size(), equalTo(0));
|
||||
|
||||
children = baseCalendarDAO.findByParent(derivedCalendar2);
|
||||
assertThat(children.size(), equalTo(0));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue