diff --git a/api/src/main/java/org/openmrs/Cohort.java b/api/src/main/java/org/openmrs/Cohort.java index 881a128cc322..e6996269bfbc 100644 --- a/api/src/main/java/org/openmrs/Cohort.java +++ b/api/src/main/java/org/openmrs/Cohort.java @@ -10,8 +10,18 @@ package org.openmrs; import org.apache.commons.lang3.StringUtils; +import org.hibernate.annotations.GenericGenerator; +import org.hibernate.annotations.Parameter; import org.hibernate.envers.Audited; +import javax.persistence.CascadeType; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.OneToMany; +import javax.persistence.Table; import java.util.Arrays; import java.util.Collection; import java.util.Date; @@ -22,17 +32,30 @@ /** * This class represents a list of patientIds. */ +@Entity +@Table(name = "cohort") @Audited public class Cohort extends BaseChangeableOpenmrsData { public static final long serialVersionUID = 0L; + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY, generator = "cohort_id_seq") + @GenericGenerator( + name = "cohort_id_seq", + strategy = "native", + parameters = @Parameter(name = "sequence", value = "cohort_cohort_id_seq") + ) + @Column(name = "cohort_id", nullable = false) private Integer cohortId; + @Column(name = "name", nullable = false) private String name; + @Column(name = "description", nullable = false) private String description; + @OneToMany(mappedBy = "cohort", cascade = CascadeType.ALL, orphanRemoval = true) private Collection memberships; public Cohort() { @@ -349,7 +372,7 @@ public void setMemberIds(Set memberIds) { } public void setMemberships(Collection members) { - this.memberships = members; + this.memberships = members; } /** diff --git a/api/src/main/resources/hibernate.cfg.xml b/api/src/main/resources/hibernate.cfg.xml index 2bd3c6ad8dc1..642ca2054e0d 100644 --- a/api/src/main/resources/hibernate.cfg.xml +++ b/api/src/main/resources/hibernate.cfg.xml @@ -82,7 +82,6 @@ - diff --git a/api/src/main/resources/org/openmrs/api/db/hibernate/Cohort.hbm.xml b/api/src/main/resources/org/openmrs/api/db/hibernate/Cohort.hbm.xml deleted file mode 100644 index 56f0a9c2cd2a..000000000000 --- a/api/src/main/resources/org/openmrs/api/db/hibernate/Cohort.hbm.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - - cohort_cohort_id_seq - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/api/src/test/java/org/openmrs/CohortTest.java b/api/src/test/java/org/openmrs/CohortTest.java index 5a89d6fb5fc6..9d74457d87fa 100644 --- a/api/src/test/java/org/openmrs/CohortTest.java +++ b/api/src/test/java/org/openmrs/CohortTest.java @@ -65,7 +65,7 @@ public void constructorWithCommaSeparatedIntegers_shouldAddMembersToCohort() { @Test public void getCommaSeparatedPatientIds_shouldReturnCommaSeparatedListOfPatients() { - List patients = new ArrayList<>(); + Set patients = new HashSet<>(); Arrays.stream(ids).forEach(id -> patients.add(new Patient(id))); Cohort cohort = new Cohort("name", "description", patients); diff --git a/api/src/test/java/org/openmrs/api/OrderServiceTest.java b/api/src/test/java/org/openmrs/api/OrderServiceTest.java index 6d553c038256..d34d94c7e42d 100644 --- a/api/src/test/java/org/openmrs/api/OrderServiceTest.java +++ b/api/src/test/java/org/openmrs/api/OrderServiceTest.java @@ -21,6 +21,7 @@ import org.openmrs.Allergy; import org.openmrs.CareSetting; +import org.openmrs.Cohort; import org.openmrs.Concept; import org.openmrs.ConceptClass; import org.openmrs.ConceptDatatype; @@ -2740,6 +2741,7 @@ public void saveOrder_shouldFailIfTheJavaTypeOfThePreviousOrderDoesNotMatch() th .addAnnotatedClass(ProgramAttributeType.class) .addAnnotatedClass(HL7InError.class) .addAnnotatedClass(OrderType.class) + .addAnnotatedClass(Cohort.class) .getMetadataBuilder().build();