java - JPA Composite Key with Object references -


i have faced issue while creating jpa composite key object references. entities show in bellow,

1) wan remove id field workflow entity , make composite key combining seqno field , template (object reference) field

2) according change updated existing relationship 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; }  

i have got things done on following manner.

embeddedid class

@embeddable public class workflowpk implements serializable {      @basic(optional = false)     @column(name = "seq_no")     private int seqno;      @joincolumn(name = "t_id", referencedcolumnname = "id", nullable = false)     @manytoone     private template template; }  

workflow entity (with embeddedid)

@entity @table(name = "workflow") public class workflow implements serializable {      @embeddedid     private workflowpk id;      @basic(optional = false)     @column(name = "name")     private string name; } 

template entity bidirectional relation

@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;      // refer filed "template" inside composite key of workflow entity      @onetomany(cascade = cascadetype.remove, mappedby = "id.template")     @lazycollection(lazycollectionoption.false)     @orderby(value = "id.stepseqno")     private list<workflow> workflowlist; }  

command entity joincolumn reference

@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;      // refer composite key of workflow entity      @manytoone(optional = false)     @joincolumns ({             @joincolumn(name="workflow_seq_no_id", referencedcolumnname = "seq_no"),             @joincolumn(name="workflow_t_id", referencedcolumnname = "t_id"),     })     private workflowstep workflow; }  

Comments

Popular posts from this blog

windows - Single EXE to Install Python Standalone Executable for Easy Distribution -

c# - Access objects in UserControl from MainWindow in WPF -

javascript - How to name a jQuery function to make a browser's back button work? -