2

我有一些相关的课程。其中一个是有另一个类的对象集。像这样,

 @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 数据来初始化它。

Serving(ser1): item : it1 amount : 1 time : 2012-04-05 12:10

Serving(ser2): item : it2 数量 : 0.5 时间 : 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 数量 : 0.5 时间 : 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 数量 : 2 time : 2012-04-03 16:01

Serving(ser9): item : it9 数量 : 1 time : 2012-04-03 16:30

Serving(ser10): item : it2 amount : 1 time : 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 错误 ~ 无法将数据库状态与会话 org.hibernate 同步.exception.GenericJDBCException:无法执行 JDBC 批量更新

我该如何解决这个问题?

4

2 回答 2

0

你应该注释你的时间:

    @Temporal(TemporalType.TIME)
    public Date date;

or

    @Temporal(TemporalType.DATETIME)
    public Date date;
于 2012-04-15T13:13:59.977 回答
0

在服务类构造函数中,必须获取日期作为参数。

public Serving(Item item, Float amount, Date date) {
super();
this.item = item;
this.amount = amount;
this.time = date;
}

所以我也必须添加这个构造函数......

于 2012-04-17T18:11:49.470 回答