データベーススタイルオプション
Hibernateは、insert into
にオプションを追加することを提案していません。 ステートメント。また、同じオプションがMSSQLで使用できるかどうかもわかりません。
ただし、そのようなオプションを見つけた場合は、挿入ステートメントをインターセプトして、自分で追加できます。
public class IgnoreRowOnDupInterceptor extends EmptyInterceptor {
public String onPrepareStatement(String sql) {
if (sql.startsWith("insert into avaya_cm_cdr") {
return sql.replace("insert into",
"insert /*+ ignore_row_on_dupkey_index(avaya_cm_cdr, i_avaya_cm_cdr_nodub) */ into");
}
return sql;
}
}
このインターセプターをpersistence.xml
で宣言する必要があります :
<property name="hibernate.ejb.interceptor" value="...IgnoreRowOnDupInterceptor" />
JPAスタイルオプション
最後の解析の最後の行を覚えて(またはデータベースから取得して)、その行までファイルをスキップすることができます。その場合、既存のすべてのアイテムを何度も解析する時間を節約できます。
私の見解では、これはJPAの方法です。これは、通常、データベースをストレージとしてのみ使用し、ビジネスロジックを(Java)アプリケーションに保持するためです。