@Entity
@Table(name = "MY_ENT")
public class Entity {
@Id
@Column(name = "MY_STRING", length = 8, nullable = false, updatable = false, unique = true)
@Size(max = 8, message = "The field must be not greater than 8 characters")
private String myString;
@NotBlank
@Size(max = 2, message = "The field must be not greater than 2 characters")
@Column(name = "MY_CODE", length = 2, nullable = false)
private String myCode;
@NotNull
@ElementCollection(fetch = FetchType.EAGER)
@Column(name = "MY_VALUE", length = 3, nullable = false)
@CollectionTable(name = "ENTITY_VALUES",
joinColumns = {
@JoinColumn(name = "MY_STRING", referencedColumnName = "MY_STRING", insertable = false, updatable = false),
@JoinColumn(name = "MY_CODE", referencedColumnName = "MY_CODE", insertable = false, updatable = false)
}
)
private Set<String> myValues;
}