diff --git a/api/src/main/java/org/openmrs/OrderSet.java b/api/src/main/java/org/openmrs/OrderSet.java index b8d904aff6e8..bb9ee05cb432 100644 --- a/api/src/main/java/org/openmrs/OrderSet.java +++ b/api/src/main/java/org/openmrs/OrderSet.java @@ -12,7 +12,23 @@ import java.util.ArrayList; import java.util.List; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.Id; +import jakarta.persistence.Table; +import jakarta.persistence.Column; +import jakarta.persistence.GenerationType; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.OneToMany; +import jakarta.persistence.OrderColumn; +import jakarta.persistence.Enumerated; +import jakarta.persistence.EnumType; +import jakarta.persistence.CascadeType; +import jakarta.persistence.AssociationOverride; +import org.hibernate.annotations.JdbcTypeCode; import org.hibernate.envers.Audited; +import org.hibernate.type.SqlTypes; import org.openmrs.api.APIException; /** @@ -21,7 +37,13 @@ * * @since 1.12 */ +@Entity +@Table(name = "order_set") @Audited +@AssociationOverride( + name = "attributes", + joinColumns = @JoinColumn(name = "order_set_id") +) public class OrderSet extends BaseCustomizableMetadata { public static final long serialVersionUID = 72232L; @@ -36,12 +58,23 @@ public enum Operator { ALL, ONE, ANY } + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name ="order_set_id" ) private Integer orderSetId; + @Enumerated(EnumType.STRING) + @JdbcTypeCode(SqlTypes.VARCHAR) + @Column(name = "operator", nullable = false) private Operator operator; - + + @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true) + @JoinColumn(name = "order_set_id", nullable = false) + @OrderColumn(name = "sequence_number") private List orderSetMembers; - + + @ManyToOne + @JoinColumn(name = "category") private Concept category; /** diff --git a/api/src/main/resources/hibernate.cfg.xml b/api/src/main/resources/hibernate.cfg.xml index 7dffa47ed422..2bf1c8b04cf1 100644 --- a/api/src/main/resources/hibernate.cfg.xml +++ b/api/src/main/resources/hibernate.cfg.xml @@ -44,7 +44,6 @@ - diff --git a/api/src/main/resources/org/openmrs/api/db/hibernate/OrderSet.hbm.xml b/api/src/main/resources/org/openmrs/api/db/hibernate/OrderSet.hbm.xml deleted file mode 100644 index 8e7e228dd9e7..000000000000 --- a/api/src/main/resources/org/openmrs/api/db/hibernate/OrderSet.hbm.xml +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - - - - - order_set_order_set_id_seq - - - - - - - - org.openmrs.OrderSet$Operator - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/api/src/test/java/org/openmrs/api/OrderServiceTest.java b/api/src/test/java/org/openmrs/api/OrderServiceTest.java index 89297ec50c2d..e0b7920a42ce 100644 --- a/api/src/test/java/org/openmrs/api/OrderServiceTest.java +++ b/api/src/test/java/org/openmrs/api/OrderServiceTest.java @@ -2936,6 +2936,7 @@ public void saveOrder_shouldFailIfTheJavaTypeOfThePreviousOrderDoesNotMatch() th .addAnnotatedClass(Privilege.class) .addAnnotatedClass(LoginCredential.class) .addAnnotatedClass(ConceptDatatype.class) + .addAnnotatedClass(OrderSet.class) .getMetadataBuilder().build();