私はHibernate JPAを初めて使用しています.....親テーブルと複数の子テーブルがあります。親テーブル存在に基づく子テーブルにレコードを挿入したい親テーブルにレコードを挿入する必要はありません。親テーブルにエントリがある場合、子テーブルに挿入します。私は挿入可能で、親テーブルの主キーに偽として更新可能です。それは動作していません。私はJPA 2.0のバージョンを使用しています。事前に感謝します。その他の情報をお知らせください。Hibernate JPA 2.0のみの更新と子テーブルへの挿入
================コメントからコピー&ペースト:
コードサンプル:
@Entity
@NamedQuery(name="Custome.findAll", query="SELECT p FROM Customer p")
public class Customer extends AbstractObject implements Serializable {
private static final long serialVersionUID = 1L;
@EmbeddedId
private CustomerPK pk;
@Temporal(TemporalType.DATE)
@Column(name="end_dt")
private Date endDt;
@Column(name="desc_txt")
private String descTxt;
//bi-directional many-to-one association to Dependent
@OneToMany(mappedBy="customer", cascade=CascadeType.ALL)
private List<Dependent> dependents = new ArrayList<>();
}
私は顧客テーブルおよびWANにdescTxtを更新したいです従属テーブルを挿入します。 CustomerPKがテーブルに存在する場合、私は更新したいと思っていません。私はCustomerテーブルのレコードの更新と挿入もスキップします。私は現在session.saveorUpdate(オブジェクト)を使用していますレコードが存在する場合、それは親レコードを更新して子テーブルに挿入しますが、親レコードが存在しない場合、親レコードと子レコードを挿入しています。レコード
何をしようとしているのかを示すコードを追加してください。親と子のエンティティは何ですか?それらはどのように関係していますか? – greyfairer
コードサンプル:@Entity @NamedQuery(名= "Custome.findAll"、クエリ= "顧客PからPを選択") publi} Cクラス顧客はAbstractObjectは= 1Lシリアライズ{ \tプライベート静的最終長いserialVersionUIDのを実装して延び。 \t @EmbeddedId \tプライベートCustomerPK pk; \t @Temporal(TemporalType.DATE) \t @Column(name = "end_dt") \tプライベートDate endDt; \t @Column(name = "desc_txt") \tプライベートString descTxt; 依存 へ\t //双方向多対一の関連\t @OneToMany(mappedBy = "顧客"、カスケード= CascadeType.ALL) \t民間一覧扶養=新しいArrayListを<>(); –
顧客表のdescTxtを更新し、従属表を挿入するwanを更新したいとします。 CustomerPKがテーブルに存在する場合、私は更新しません。 Customerテーブルのレコードの更新と挿入もスキップします。 現在、私はsession.saveorUpdate(オブジェクト)を使用しています レコードが存在する場合は親レコードを更新して子テーブルに挿入します 親レコードが存在しない場合は親レコードと子レコードを挿入します親レコードに挿入 –