|
12 | 12 | import java.util.Date; |
13 | 13 |
|
14 | 14 | import org.codehaus.jackson.annotate.JsonIgnore; |
| 15 | +import org.hibernate.annotations.Cache; |
| 16 | +import org.hibernate.annotations.CacheConcurrencyStrategy; |
| 17 | +import org.hibernate.annotations.GenericGenerator; |
| 18 | +import org.hibernate.annotations.Parameter; |
15 | 19 | import org.hibernate.envers.Audited; |
16 | 20 | import org.openmrs.customdatatype.CustomDatatypeUtil; |
17 | 21 | import org.openmrs.customdatatype.CustomValueDescriptor; |
18 | 22 | import org.openmrs.customdatatype.NotYetPersistedException; |
19 | 23 | import org.openmrs.customdatatype.SingleCustomValue; |
20 | 24 |
|
| 25 | +import javax.persistence.Entity; |
| 26 | +import javax.persistence.Table; |
| 27 | +import javax.persistence.AttributeOverride; |
| 28 | +import javax.persistence.Column; |
| 29 | +import javax.persistence.Id; |
| 30 | +import javax.persistence.GeneratedValue; |
| 31 | +import javax.persistence.GenerationType; |
| 32 | +import javax.persistence.ManyToOne; |
| 33 | +import javax.persistence.JoinColumn; |
| 34 | +import javax.persistence.Lob; |
| 35 | + |
21 | 36 | /** |
22 | 37 | * A FormResource is meant as a way for modules to add arbitrary information to |
23 | 38 | * a Form. FormResources are essentially just key-value pairs. The value is |
|
30 | 45 | * |
31 | 46 | * @since 1.9 |
32 | 47 | */ |
| 48 | +@Entity |
| 49 | +@Table(name = "form_resource") |
| 50 | +@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) |
| 51 | +@AttributeOverride(name = "uuid", column = @Column(name = "uuid", unique = true, nullable = false, length = 38)) |
33 | 52 | @Audited |
34 | 53 | public class FormResource extends BaseOpenmrsObject implements CustomValueDescriptor, SingleCustomValue<FormResource> { |
35 | 54 |
|
36 | 55 | private static final long serialVersionUID = 1L; |
37 | 56 |
|
| 57 | + @Id |
| 58 | + @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "form_resource_form_resource_id_seq") |
| 59 | + @GenericGenerator( |
| 60 | + name = "form_resource_form_resource_id_seq", |
| 61 | + strategy = "native", |
| 62 | + parameters = @Parameter(name = "sequence", value = "form_resource_form_resource_id_seq") |
| 63 | + ) |
| 64 | + @Column(name = "form_resource_id") |
38 | 65 | private Integer formResourceId; |
39 | | - |
| 66 | + |
| 67 | + @ManyToOne |
| 68 | + @JoinColumn(name = "form_id", nullable = false) |
40 | 69 | private Form form; |
41 | | - |
| 70 | + |
| 71 | + @Column(name = "name", length = 255, nullable = true) |
42 | 72 | private String name; |
43 | | - |
| 73 | + |
| 74 | + @Lob |
| 75 | + @Column(name = "value_reference", length = 65535, nullable = true) |
44 | 76 | private String valueReference; |
45 | | - |
| 77 | + |
| 78 | + @Column(name = "datatype", length = 255) |
46 | 79 | private String datatypeClassname; |
47 | | - |
| 80 | + |
| 81 | + @Lob |
| 82 | + @Column(name = "datatype_config", length = 65535) |
48 | 83 | private String datatypeConfig; |
49 | | - |
| 84 | + |
| 85 | + @Column(name = "preferred_handler", length = 255) |
50 | 86 | private String preferredHandlerClassname; |
51 | | - |
| 87 | + |
| 88 | + @Lob |
| 89 | + @Column(name = "handler_config", length = 65535) |
52 | 90 | private String handlerConfig; |
53 | 91 |
|
54 | 92 | private transient boolean dirty = false; |
55 | 93 |
|
56 | 94 | private transient Object typedValue; |
57 | | - |
| 95 | + |
| 96 | + @ManyToOne |
| 97 | + @JoinColumn(name = "changed_by") |
58 | 98 | private User changedBy; |
59 | 99 |
|
| 100 | + @Column(name = "date_changed", length = 19) |
60 | 101 | private Date dateChanged; |
61 | 102 |
|
62 | 103 | public FormResource() { |
|
0 commit comments