エンティティ用の複合主キー(3列からなる)があります。Springデータの保存中にselect文を避ける方法JPA
複合キーの2つの列のうち、1は自動インクリメントで、もう1つは別のエンティティから取り込まれます。
エンティティを保存すると、select文を実行してからstatementを挿入します。 私はエンティティが一意であり、単にテーブルに挿入したいと知っているので、select文の実行を無視/回避したいと思います。
フィールドに@Version(@Version Long version
など)をエンティティで使用していることについて読んでいますが、その場合はテーブルにもカラムを置く必要があります。
特に私が挿入しているレコードが一意であることを知っているときに、多くの時間を費やすselect文の実行。
[EDITED]
私のエンティティクラスは次のとおりです。
@Entity
public class Table implements Serializable {
private static final long serialVersionUID = 1L;
@EmbeddedId
private TablePK id;
private String Name;
private String country;
}
@Embeddable
public class TablePK implements Serializable {
//default serial version id, required for serializable classes.
private static final long serialVersionUID = 1L;
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
private Integer age;
}
とログは次のとおりです。
10:39:57.650 [main] DEBUG org.hibernate.SQL - select
10:39:57.684 [main] DEBUG org.hibernate.loader.Loader - Done entity load
10:39:57.693 [main] DEBUG o.h.e.i.AbstractSaveEventListener - Generated identifier:
10:39:57.705 [main] DEBUG o.h.e.t.internal.TransactionImpl - committing
10:39:57.706 [main] DEBUG o.h.e.i.AbstractFlushingEventListener - Processing flush-time cascades
10:39:57.707 [main] DEBUG o.h.e.i.AbstractFlushingEventListener - Dirty checking collections
10:39:57.709 [main] DEBUG o.h.e.i.AbstractFlushingEventListener - Flushed: 1 insertions, 0 updates, 0 deletions to 1 objects
10:39:57.709 [main] DEBUG o.h.e.i.AbstractFlushingEventListener - Flushed: 0 (re)creations, 0 updates, 0 removals to 0 collections
10:39:57.710 [main] DEBUG o.h.internal.util.EntityPrinter - Listing entities:
10:39:57.726 [main] DEBUG org.hibernate.SQL - insert into Table
誰が提案してくださいことができます。
@NeilStocktonポスト編集 – Manglesh
@NeilStocktonログから見ると、選択文があります。私はテーブルの構造を隠すために削除しました。だからそれはテーブルから選択するように言う.... – Manglesh
@ NeilStocktonこんにちは私は私の選択し、テーブルの構造を隠すためにログを挿入するフィールドを隠していると言った... – Manglesh