diff --git a/api/src/main/java/org/openmrs/EncounterProvider.java b/api/src/main/java/org/openmrs/EncounterProvider.java index cf4ee70141d..584763fa340 100644 --- a/api/src/main/java/org/openmrs/EncounterProvider.java +++ b/api/src/main/java/org/openmrs/EncounterProvider.java @@ -9,24 +9,53 @@ */ package org.openmrs; +import org.hibernate.annotations.BatchSize; +import org.hibernate.annotations.GenericGenerator; +import org.hibernate.annotations.Parameter; import org.hibernate.envers.Audited; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Table; + /** * Mapping Class between Encounters and Providers which allows many to many relationship. * * @since 1.9 */ +@Entity +@Table(name = "encounter_provider") +@BatchSize(size = 25) @Audited public class EncounterProvider extends BaseChangeableOpenmrsData { public static final long serialVersionUID = 1L; - + + @Id + @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "encounter_provider_id_seq") + @GenericGenerator( + name = "encounter_provider_id_seq", + strategy = "native", + parameters = @Parameter(name = "sequence", value = "encounter_provider_encounter_provider_id_seq") + ) + @Column(name = "encounter_provider_id") private Integer encounterProviderId; - + + @ManyToOne + @JoinColumn(name = "encounter_id", nullable = false) private Encounter encounter; - + + @ManyToOne + @JoinColumn(name = "provider_id", nullable = false) private Provider provider; - + + @ManyToOne + @JoinColumn(name = "encounter_role_id", nullable = false) private EncounterRole encounterRole; public void setEncounterProviderId(Integer encounterProviderId) { diff --git a/api/src/main/resources/hibernate.cfg.xml b/api/src/main/resources/hibernate.cfg.xml index 2bd3c6ad8dc..c81e5407c44 100644 --- a/api/src/main/resources/hibernate.cfg.xml +++ b/api/src/main/resources/hibernate.cfg.xml @@ -77,7 +77,6 @@ - diff --git a/api/src/main/resources/org/openmrs/api/db/hibernate/EncounterProvider.hbm.xml b/api/src/main/resources/org/openmrs/api/db/hibernate/EncounterProvider.hbm.xml deleted file mode 100644 index 8471185e7e1..00000000000 --- a/api/src/main/resources/org/openmrs/api/db/hibernate/EncounterProvider.hbm.xml +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - - - - - encounter_provider_encounter_provider_id_seq - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/api/src/test/java/org/openmrs/api/OrderServiceTest.java b/api/src/test/java/org/openmrs/api/OrderServiceTest.java index 6d553c03825..e5c7b5169c1 100644 --- a/api/src/test/java/org/openmrs/api/OrderServiceTest.java +++ b/api/src/test/java/org/openmrs/api/OrderServiceTest.java @@ -35,6 +35,7 @@ import org.openmrs.DrugIngredient; import org.openmrs.DrugOrder; import org.openmrs.Encounter; +import org.openmrs.EncounterProvider; import org.openmrs.FreeTextDosingInstructions; import org.openmrs.GlobalProperty; import org.openmrs.Location; @@ -2740,6 +2741,7 @@ public void saveOrder_shouldFailIfTheJavaTypeOfThePreviousOrderDoesNotMatch() th .addAnnotatedClass(ProgramAttributeType.class) .addAnnotatedClass(HL7InError.class) .addAnnotatedClass(OrderType.class) + .addAnnotatedClass(EncounterProvider.class) .getMetadataBuilder().build();