1
我有三個表, 其中一個是(場景),它是主表, 兩個其他表(鏈接,節點)是它的細節。 我想JPA堅持外鍵爲我堅持情景鏈接和節點表中沒有我的干預, 有沒有人幫我做到這一點?對於JPA中的外鍵主對象詳細ID
場景:
@Entity
@NamedQueries({ @NamedQuery(name = "Scenario.findAll", query = "select o from Scenario o") })
public class Scenario implements Serializable {
private String className;
@Id
@Column(nullable = false,name="ID")
private int id;
private String linkFromPortIdProperty;
private String linkToPortIdProperty;
private String UUID;
@OneToMany(mappedBy = "scenario", cascade = { CascadeType.PERSIST, CascadeType.MERGE })
private List<Link> linkDataArray;
@OneToMany(mappedBy = "scenario1", cascade = { CascadeType.PERSIST, CascadeType.MERGE })
private List<Node> nodeDataArray;
鏈接:
@Entity
@NamedQueries({ @NamedQuery(name = "Lnk.findAll", query = "select o from Link o") })
@Table(name = "LNK", schema = "DEV_SGMNT")
public class Link implements Serializable {
private static final long serialVersionUID = -5262332521707870082L;
@Transient
private String to;
private int fromPort;
@Id
@Column(nullable = false)
private int id;
private double[] points;
@Transient
private String from;
private int toPort;
@ManyToOne
@JoinColumn(name = "SCENARIO_ID")
private Scenario scenario;
節點:
@Entity
@NamedQueries({ @NamedQuery(name = "Node.findAll", query = "select o from Node o") })
public class Node implements Serializable {
private static final long serialVersionUID = -8401815303355236645L;
private String classname;
@Id
@Column(nullable = false)
private int id;
private BigDecimal inbound;
private String key;
private BigDecimal outbound;
private String properties;
private String tab;
private String text;
private String vizitems;
@ManyToOne
@JoinColumn(name = "SCENARIO_ID")
private Scenario scenario1;
我想我明白你的'不intervention'的意思。但是,爲了清楚起見,我建議您在代碼片段中添加用於保存'... persist(鏈接)'的代碼以及數據庫中的預期結果。 – alexbt