Konnte nicht execute JDBC batch update

habe ich ein wenig Schwierigkeiten während machen mein ersten play-Anwendung.

Bekam ich ein Klasse Essen, das kann eine oder mehrere MealEntries. Ein Menü-Eintrag kann verwendet werden, um mehrere Mahlzeiten (ich.e wenn u Essen 2 Eier für mehr als eine Mahlzeit). Aber ich bin immer eine Ausnahme.

Kann ich verstehen, warum ich die Ausnahme, aber ich kann nicht Bild, wie kann ich heilen.

Dies ist meine Ausnahme:

Caused by: java.sql.BatchUpdateException: Duplicate entry '4' for key 'mealEntries_id'
    at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:2020)
    at com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:1451)
    at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeBatch(NewProxyPreparedStatement.java:1723)
    at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)
    at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)
    ... 12 more

Mahlzeit Klasse:

public class Meal extends Model {
public String name;
public Date consumed;

@OneToMany
public List<MealEntry> mealEntries;
}

MealEntry Klasse:

public class MealEntry extends Model {
public int amount;

@OneToOne
public Unit unit;

@OneToOne
public FoodType type;

@OneToOne
public MealEntry with;
}

Vielen Dank im Voraus

Edit:
Versucht, erstellen Sie einen Testfall, aber lief in einige andere Fehler.
Ich werde versuchen zu erklären:
Die Ausnahme passiert, wenn ich versuche, zu schaffen eine zweite Mahlzeit mit MealEntries, dass auch die erste Mahlzeit.

Können Sie zeigen Sie Ihre test-Fall?
Hibernate hat eine Tabelle zu handhaben, die 1-zu-viele-Beziehung, die Sie brauchen, um zu bestehen. Die Tabelle hat eine Spalte namens mealEntries_id im Interesse der Erhaltung der Reihenfolge der List<MealEntry>. Es wäre gut zu prüfen, die Struktur der Tabelle und überprüfen, ob hibernate erstellt eine UNIQUE KEY Einschränkung auf mealEntries_id. Wenn ja, versuchen Sie ändern es manuell. Könntest du poste den SQL-code, der automatisch generiert durch Hibernate (betreffend die Erstellung der Tabelle und der select Abfragen)?

InformationsquelleAutor lassejl | 2011-02-16

Schreibe einen Kommentar