अगर यह संभव है, लेकिन मैप करने के लिए WorkflowInstancePlayer player
जो दो अन्य संस्था मैपिंग, WorkActionClass
और WorkflowInstance
नीचे इकाई में के आधार पर संबंधित है की कोशिश कर रहा है सुनिश्चित नहीं हैं के आधार पर संबंधित है।जेपीए इकाई मानचित्रण जो दो अन्य संस्था मैपिंग
public class Action implements Serializable {
@Id
private Long action_id;
@ManyToOne
@JoinColumn(name = "work_action_class_id", referencedColumnName = "work_action_class_id")
private WorkActionClass workActionClass;
@ManyToOne
@JoinColumn(name = "workflow_instance_id", referencedColumnName = "workflow_instance_id")
private WorkflowInstance workflowInstance;
UPDATE: How can I map to a WorkflowInstancePlayer player?????
@ManyToOne
@JoinColumns({
@JoinColumn(name = "workflow_instance_id", referencedColumnName = "workflow_instance_id", insertable = false, updatable = false),
@JoinColumn(name = "workActionClass.role_class_id", referencedColumnName = "role_class_id", insertable = false, updatable = false)
})
private WorkflowInstancePlayer player;
workflowInstancePlayer ली गई है workflow_instance_id
और role_class_id
लेकिन role_class_id
के आधार पर वास्तव में ऊपर (workActionClass.role_class_id)
public class WorkflowInstancePlayer implements Serializable {
@Id
private WorkflowInstance workflowInstance;
@Id
private RoleClass roleClass;
@ManyToOne
@JoinColumn(name = "badge", referencedColumnName = "badge")
private Employee employee;
workActionClass
के attibute है
public class WorkActionClass implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "trx_seq")
private Long work_action_class_id;
@ManyToOne
@JoinColumn(name = "role_class_id")
private RoleClass roleClass;
उदाहरण डेटा होगा:
Action
------
Id = 10
work_action_class_id = 7
workflow_instance_id = 2
WorkActionClass
---------------
Id = 7
role_name = reviewer
role_class_id = 3
WorkflowInstancePlayer
----------------------
workflow_instance_id = 2
role_class_id = 3
badge = 111222
तो कार्रवाई इकाई में, मैं पता चल जाएगा वर्कफ़्लो इंस्टांस प्लेयर वास्तव में कार्रवाई तालिका में बिल्ला के भंडारण के बिना आईडी 111,222 के साथ कर्मचारी है।
अद्यतन
इसे होने की Vlad पद मैं बदलाव के आधार पर
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumnsOrFormulas({
@JoinColumnOrFormula([email protected](value="(SELECT a.role_class_id FROM (Use Table Name not Entity Name here) a WHERE a.work_action_class_id = work_action_class_id)", referencedColumnName="role_class_id")),
@JoinColumnOrFormula(column = @JoinColumn(name="workflow_instance_id", referencedColumnName="workflow_instance_id"))
})
बिल्ला = 111,222 workflow_instance_id के कुछ कार्य है (= 2) और role_class_id (= 3) - क्या यह सही है? .... यदि आप बैज = 111222 कैसे प्राप्त करते हैं? – NickJI
वास्तव में नहीं। यह वर्कफ़्लो एप्लिकेशन है। कार्यकर्ता 111222 को वर्कफ़्लो में समीक्षाकर्ता के रूप में असाइन किया गया था। वर्कफ़्लो प्रकार के आधार पर समीक्षक के पास कई क्रियाएं होंगी। वर्कफ़्लो इंस्टेंस आईडी के लिए ओरेकल अनुक्रम संख्या 2 की अगली इनलाइन थी और एक समीक्षाकर्ता भूमिका में 3 का role_class_id है। इसलिए उन तीन मानों को वर्कफ़्लो इंस्टेंसप्लेयर – jeff
@NickJI में डाला गया है, मैंने आपकी टिप्पणी दोबारा पढ़ी है। यदि आपका मतलब है "रिश्ते" के रूप में कार्य करें तो हां। सबसे पहले मैंने इसे "फॉर्मूला" के रूप में पढ़ा है जैसे example_id times role_class_id द्वारा विभाजित .... आदि। वर्कफ़्लो इंस्टेंसप्लेयर टेबल – jeff