I have faced some issue while creating JPA Composite Key with Object references. Entities are as show in bellow,
1) I wan to remove the ID field from Workflow entity and make a composite key with combining seqNo field and template (object reference) field
2) According to that change updated the existing relationship with Command entity (@JoinColumn(name = "WORKFLOW_ID", referencedColumnName = "ID"))
Thanks.
Template entity:
@Entity
@Table(name = "template")
public class Template implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
@SequenceGenerator(name="template_se", sequenceName="TEMPLATE_SE", allocationSize=1, initialValue=1)
@Basic(optional = false)
@Column(name = "ID")
private Integer id;
@Basic(optional = false)
@Column(name = "NAME", unique = true)
private String name;
@OneToMany(cascade = CascadeType.REMOVE, mappedBy = "template")
@LazyCollection(LazyCollectionOption.FALSE)
private List<Workflow> workflowList;
}
Workflow entity:
@Entity
@Table(name = "workflow")
public class Workflow implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
@SequenceGenerator(name="wf_se", sequenceName="WF_SE", allocationSize=1, initialValue=1)
@Basic(optional = false)
@Column(name = "ID")
private Integer id;
@Basic(optional = false)
@Column(name = "SEQ_NO")
private int seqNo;
@JoinColumn(name = "T_ID", referencedColumnName = "ID", nullable = false)
@ManyToOne
private Template template;
@Basic(optional = false)
@Column(name = "NAME")
private String name;
}
Command entity:
@Entity
@Table(name = "command")
public class Command implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
@SequenceGenerator(name="command_se", sequenceName="COMMAND_SE", allocationSize=1, initialValue=1)
@Basic(optional = false)
@Column(name = "ID")
private Integer id;
@JoinColumn(name = "WORKFLOW_ID", referencedColumnName = "ID")
@ManyToOne(optional = false)
private Workflow workflow;
}