diff --git a/api/src/main/java/org/openmrs/FormField.java b/api/src/main/java/org/openmrs/FormField.java index e1ebc9a6e8ea..b761747e3563 100755 --- a/api/src/main/java/org/openmrs/FormField.java +++ b/api/src/main/java/org/openmrs/FormField.java @@ -14,6 +14,17 @@ import org.codehaus.jackson.annotate.JsonIgnore; 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.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Table; +import org.hibernate.annotations.GenericGenerator; +import org.hibernate.annotations.Parameter; /** * The FormField object relates/orders the fields on a form A form can @@ -23,33 +34,55 @@ * @see org.openmrs.Form * @see org.openmrs.Field */ +@Entity +@Table(name = "form_field") @Audited public class FormField extends BaseChangeableOpenmrsMetadata implements java.io.Serializable, Comparable { public static final long serialVersionUID = 3456L; // Fields - + @Id + @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "form_field_id_seq") + @GenericGenerator( + name = "form_field_id_seq", + strategy = "native", + parameters = @Parameter(name = "sequence", value = "form_field_form_field_id_seq") + ) + @Column(name = "form_field_id") protected Integer formFieldId; + @ManyToOne(cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE}) + @JoinColumn(name = "parent_form_field") protected FormField parent; + @ManyToOne + @JoinColumn(name = "form_id", nullable = false) protected Form form; + @ManyToOne(cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE}) + @JoinColumn(name = "field_id", nullable = false) protected Field field; + @Column(name = "field_number", length = 11) protected Integer fieldNumber; + @Column(name = "field_part", length = 5) protected String fieldPart; + @Column(name = "page_number", length = 11) protected Integer pageNumber; + @Column(name = "min_occurs", length = 11) protected Integer minOccurs; + @Column(name = "max_occurs", length = 11) protected Integer maxOccurs; + @Column(name = "required", nullable = false, length = 1) protected Boolean required = false; + @Column(name = "sort_weight", length = 5, nullable = true) protected Float sortWeight; // Constructors diff --git a/api/src/main/resources/hibernate.cfg.xml b/api/src/main/resources/hibernate.cfg.xml index 2bd3c6ad8dc1..b4e211f53635 100644 --- a/api/src/main/resources/hibernate.cfg.xml +++ b/api/src/main/resources/hibernate.cfg.xml @@ -47,7 +47,6 @@ - diff --git a/api/src/main/resources/org/openmrs/api/db/hibernate/FormField.hbm.xml b/api/src/main/resources/org/openmrs/api/db/hibernate/FormField.hbm.xml deleted file mode 100644 index 8cbbd9003b87..000000000000 --- a/api/src/main/resources/org/openmrs/api/db/hibernate/FormField.hbm.xml +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - - - - - form_field_form_field_id_seq - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/api/src/test/java/org/openmrs/api/OrderServiceTest.java b/api/src/test/java/org/openmrs/api/OrderServiceTest.java index 6d553c038256..3fe0600b2842 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.FormField; 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(FormField.class) .getMetadataBuilder().build();