1
嘗試使用JPA實體實施物料清單概念: -
IDE:Eclipse Helios;
罐:eclipselink2.4.0,javax.persistence 實體如下:JPA實體在實施物料清單概念時發生錯誤
@Id
@TableGenerator(name = "Config_Key_Incrementor", table = "id_generator", pkColumnName = "gen_name", valueColumnName = "gen_value", pkColumnValue = "conifg_id_gen", allocationSize = 1, initialValue = 1)
@GeneratedValue(strategy = TABLE, generator = "Config_Key_Incrementor")
@Column(name = "config_id")
private int configId;
@Column(name = "config_name")
private String configName;
//bi-directional many-to-one association to Bill_Of_Material
@ManyToOne
@PrimaryKeyJoinColumn(name="config_id")
private Configuration parent;
//bi-directional many-to-one association to Bill_Of_Material
@OneToMany(mappedBy="parent")
private List<Configuration> children = new ArrayList<Configuration>();
public Configuration getParent() {
return parent;
}
public void setParent(Configuration parent) {
this.parent = parent;
}
public List<Configuration> getChildren() {
return children;
}
public void setChildren(List<Configuration> children) {
this.children = children;
}
public int getConfigId() {
return configId;
}
public void setConfigId(int configId) {
this.configId = configId;
}
public String getConfigName() {
return configName;
}
public void setConfigName(String configName) {
this.configName = configName;
}
輸出:
CREATE TABLE configuration
(
config_id integer NOT NULL,
config_name character varying(255),
CONSTRAINT configuration_pkey PRIMARY KEY (config_id),
CONSTRAINT fk_configuration_config_id FOREIGN KEY (config_id)
REFERENCES configuration (config_id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
錯誤: 是越來越創建的表,但該列parent_config_id缺失並且與config_id的關係也丟失。
感謝您的快速響應。建議的解決方案完美運作。 但是我發佈的相同代碼在IDE環境與eclipselink和javax.persistence jar版本相同的eclipse juno上工作。我無法弄清楚爲什麼當我嘗試在helios中運行時它的行爲不同。謝謝 – adihere