Ich habe einige Klassen, die verwandt sind. Einer davon ist der Objektsatz einer anderen Klasse. So,ElementCollection Verwenden mit PlayFrameWork
@Entity
public class Serving extends Model{
@Required
public Item item;
@Required
public Float amount;
@Required
public Date time;
public Serving(Item item, Float amount) {
super();
this.item = item;
this.amount = amount;
this.time = new Date();
}
}
@Entity
public class Receipt extends Model{
@Required
@ElementCollection
@NotNull
public Set<Serving> servings;
@Required
DiningTable dtable;
public Receipt(Set<Serving> servings, DiningTable dtable) {
super();
this.servings = servings;
this.dtable = dtable;
}
//order'ın totalın hesaplamak lazım.
}
und ich habe auch einige Yaml Daten, um dies zu initialisieren.
Serving(ser1): item : it1 amount : 1 time : 2012-04-05 12:10
Serving(ser2): item : it2 amount : 0.5 time : 2012-04-05 12:11
Serving(ser3): item : it3 amount : 2 time : 2012-04-04 13:10
Serving(ser4): item : it4 amount : 1 time : 2012-04-04 13:10
Serving(ser5): item : it5 amount : 0.5 time : 2012-04-04 14:00
Serving(ser6): item : it6 amount : 1 time : 2012-04-04 14:10
Serving(ser7): item : it7 amount : 1 time : 2012-04-03 16:00
Serving(ser8): item : it8 amount : 2 time : 2012-04-03 16:01
Serving(ser9): item : it9 amount : 1 time : 2012-04-03 16:30
Serving(ser10): item : it2 amount : 1 time : 2012-04-02 17:00
Receipt(rec1): dtable : tab1 servings :
- ser1 - ser2 - ser3Receipt(rec2): dtable : tab2 servings : - ser4 - ser5
Receipt(rec3): dtable : tab3 servings : - ser6
Receipt(rec4): dtable : tab4 servings : - ser7 - ser8
Receipt(5): dtable : tab4 servings : - ser9 - ser10
Als ich versuchte, diese Daten zu initialisieren es diesen Fehler gibt,
14:13:01,200 WARN ~ SQL Error: 1364, SQLState: HY000 14:13:01,200 ERROR ~ Field 'servings_time' doesn't have a default value 14:13:01,200 ERROR ~ Could not synchronize database state with session org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update
Wie kann ich dieses Problem lösen?
@Temporal(TemporalType.TIME)
public Date date;
or
@Temporal(TemporalType.DATETIME)
public Date date;
das Komma in dem 'ser2' ist ein Copy-Paste-Fehler Serving? – Codemwnci
Sie haben Recht, es ist meine Schuld. der richtige ist Komma oder Punkt? –
Punkt ist das richtige Format. – Codemwnci