Optie databasestijl
Hibernate biedt niet aan om een optie toe te voegen aan zijn insert into
verklaringen. En ik weet niet of dezelfde optie beschikbaar is voor MS SQL.
Maar als je zo'n optie vindt, kun je de insert-instructie onderscheppen en die zelf toevoegen:
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;
}
}
U moet deze interceptor aangeven in uw persistence.xml
:
<property name="hibernate.ejb.interceptor" value="...IgnoreRowOnDupInterceptor" />
JPA-stijloptie
U kunt de laatste regel van de laatste parsering onthouden (of ophalen uit de database) en het bestand tot die regel overslaan. In dat geval zou u zelfs de tijd besparen om elk bestaand item steeds opnieuw te ontleden.
Vanuit mijn oogpunt is dit de JPA-manier, omdat je de database meestal alleen als opslag gebruikt en de bedrijfslogica in de (Java) applicatie bewaart.