ItEr16S12CreacionProxectoPlanificacion: Turning OrderElement many to one relationship to TaskElement into a many-to-one bidirectional relationship.
This commit is contained in:
parent
d9d820ac3c
commit
770a1d5e7c
4 changed files with 32 additions and 4 deletions
|
|
@ -1,11 +1,13 @@
|
|||
package org.navalplanner.business.orders.entities;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import org.hibernate.validator.NotNull;
|
||||
import org.navalplanner.business.planner.entities.TaskElement;
|
||||
|
||||
public abstract class OrderElement {
|
||||
|
||||
|
|
@ -26,6 +28,8 @@ public abstract class OrderElement {
|
|||
|
||||
private String description;
|
||||
|
||||
private Set<TaskElement> taskElements = new HashSet<TaskElement>();
|
||||
|
||||
public abstract Integer getWorkHours();
|
||||
|
||||
public abstract List<HoursGroup> getHoursGroups();
|
||||
|
|
@ -122,8 +126,15 @@ public abstract class OrderElement {
|
|||
transientHoursGroups.add(hoursGroup);
|
||||
}
|
||||
}
|
||||
|
||||
return transientHoursGroups;
|
||||
}
|
||||
|
||||
public Set<TaskElement> getTaskElements() {
|
||||
return Collections.unmodifiableSet(taskElements);
|
||||
}
|
||||
|
||||
public boolean isScheduled() {
|
||||
return !taskElements.isEmpty();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,6 +31,10 @@
|
|||
<property name="mandatoryInit" access="field" />
|
||||
<property name="mandatoryEnd" access="field" />
|
||||
<property name="description" access="field" />
|
||||
<set name="taskElements" access="field">
|
||||
<key column="ORDER_ELEMENT_ID"/>
|
||||
<one-to-many class="org.navalplanner.business.planner.entities.TaskElement"></one-to-many>
|
||||
</set>
|
||||
|
||||
<joined-subclass name="OrderLineGroup">
|
||||
<key column="ORDERELEMENTID"></key>
|
||||
|
|
|
|||
|
|
@ -3,15 +3,15 @@
|
|||
<hibernate-mapping package="org.navalplanner.business.planner.entities"
|
||||
default-access="field">
|
||||
<class name="TaskElement">
|
||||
<id name="id">
|
||||
<generator class="native"></generator>
|
||||
<id name="id" column="id" type="long">
|
||||
<generator class="native" />
|
||||
</id>
|
||||
<version name="version" type="long"></version>
|
||||
|
||||
<property name="startDate" type="timestamp" />
|
||||
<property name="endDate" type="timestamp" />
|
||||
|
||||
<many-to-one name="orderElement" cascade="none"/>
|
||||
<many-to-one name="orderElement" cascade="none" column="ORDER_ELEMENT_ID"/>
|
||||
|
||||
<set name="dependenciesWithThisOrigin">
|
||||
<key column="ORIGIN"></key>
|
||||
|
|
|
|||
|
|
@ -263,4 +263,17 @@ public class TaskElementServiceTest {
|
|||
assertThat(child2.getHoursGroup(), JUnitMatchers
|
||||
.either(equalTo(hours1)).or(equalTo(hours2)));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testInverseManyToOneRelationshipInOrderElement() {
|
||||
Task task = createValidTask();
|
||||
taskElementService.save(task);
|
||||
flushAndEvict(task);
|
||||
sessionFactory.getCurrentSession().evict(task.getOrderElement());
|
||||
TaskElement fromDB = taskElementService.findById(task.getId());
|
||||
OrderElement orderElement = fromDB.getOrderElement();
|
||||
assertThat(orderElement.getTaskElements().size(), equalTo(1));
|
||||
assertThat(orderElement.getTaskElements().iterator().next(),
|
||||
equalTo(fromDB));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue