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();