我有一些相关的课程。其中一个是另一个类的对象集。像这样,
@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.
}
我还有一些yaml数据可用于初学者。
服务(SER1): item:it1 金额:1 时间:2012-04-05 12:10
服务(SER2): item:it2 金额:0.5 时间:2012-04-05 12:11
服务(ser3): item:it3 金额:2 时间:2012-04-04 13:10
服务(ser4): item:it4 金额:1 时间:2012-04-04 13:10
服务(ser5): item:it5 金额:0.5 时间:2012-04-04 14:00
服务(ser6): item:it6 金额:1 时间:2012-04-04 14:10
服务(ser7): item:it7 金额:1 时间:2012-04-03 16:00
服务(ser8): item:it8 金额:2 时间:2012-04-03 16:01
服务(ser9): item:it9 金额:1 时间:2012-04-03 16:30
服务(ser10): item:it2 金额:1 时间:2012-04-02 17:00
收据(REC1): dtable:tab1 服务:
- ser1 - ser2 - ser3收据(REC2): dtable:tab2 份量: - ser4 - ser5
收据(REC3): dtable:tab3 份量: - ser6
收据(REC4): dtable:tab4 份量: - ser7 - ser8
收据(5): dtable:tab4 份量: - ser9 - ser10
当我尝试初始化此数据时,会出现此错误,
14:13:01,200 WARN~SQL错误:1364,SQLState:HY000 14:13:01,200错误〜字段'servings_time'没有默认值 14:13:01,200 ERROR~无法将数据库状态与会话同步 org.hibernate.exception.GenericJDBCException:无法执行JDBC批量更新
我该如何解决这个问题?
答案 0 :(得分:0)
你应该用以下方式注释你的时间:
@Temporal(TemporalType.TIME)
public Date date;
or
@Temporal(TemporalType.DATETIME)
public Date date;
答案 1 :(得分:0)
在服务类构造函数中,必须将date作为参数。
public Serving(Item item, Float amount, Date date) {
super();
this.item = item;
this.amount = amount;
this.time = date;
}
所以我也要添加这个构造函数......