1
我對hibernate很新穎。使用Hibernate註釋持久化數據
我有如下表:
合同
ContractID(PK), 其他列
提供商
ProviderID(PK), 其他列
ContractualAgreement ContractualAgreementID(PK), ContractID(FK), ProviderID(FK), 其他列
我使用以下休眠註釋:
**Contract.java**
{
private List<ContractualAgreement> contractualAgreements = new ArrayList<ContractualAgreement>();
@OneToMany(cascade= { javax.persistence.CascadeType.ALL },fetch= FetchType.LAZY)
@JoinColumn (name="ContractID", updatable=false,insertable=false)
public List<ContractualAgreement> getContractualAgreements() {
return this.contractualAgreements;
}
}
**Provider.java**
{
private List<ContractualAgreement> contractualAgreements = new ArrayList<ContractualAgreement>();
@OneToMany(cascade= { javax.persistence.CascadeType.ALL },fetch= FetchType.LAZY)
@JoinColumn (name="ProviderID", updatable=false,insertable=false,nullable=false)
public List<ContractualAgreement> getContractualAgreements() {
return this.contractualAgreements;
}
}
}
**ContractualAgreement.java**
{
@Id
@Column(name = "ContractualAgreementID", unique = true, nullable = false)
public long getContractualAgreementId() {
return this.contractualAgreementId;
}
public void setContractualAgreementId(long contractualAgreementId) {
this.contractualAgreementId = contractualAgreementId;
}
@ManyToOne(fetch= FetchType.LAZY)
@JoinColumn(name = "ProviderID",updatable=false,insertable=false,nullable=false)
public Provider getProvider() {
return this.provider;
}
public void setProvider(Provider provider) {
this.provider = provider;
}
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="ContractID",updatable=false,insertable=false,nullable=false)
public Contract getContract() {
return this.contract;
}
}
我填充在以下順序數據:
- 契約對象契約契約對象。
- contractualagreements list on provider。
我嘗試使用saveOrUpdate保存提供程序。
現在它確實將提供者,contractualagreement表中的數據保存在contractualagreemtent表中的合適的提供者中,但不保存合同表中的數據。
任何人都可以指出我做錯了什麼?
任何幫助表示讚賞。
感謝您的回覆,但contractualagreement表確實有其他列鏈接到其他表以及它自己的列。 –
然後根據參考手冊正確映射您的雙向OneToMany。 –