Java Spring、JPA和hibernate的问题

Java Spring、JPA和hibernate的问题,java,hibernate,spring,jpa-2.0,Java,Hibernate,Spring,Jpa 2.0,我正在使用spring和hibernate开发一个简单的在线拍卖系统。我创建了一个POJO“Items.java”,其中包含如下数据变量: @Id @GeneratedValue @Column(name="item_id") private Integer itemId; @Column private String name; @Column private String summary; @Column private double price; @Column private S

我正在使用spring和hibernate开发一个简单的在线拍卖系统。我创建了一个POJO“Items.java”,其中包含如下数据变量:

@Id
@GeneratedValue
@Column(name="item_id")
private Integer itemId;

@Column
private String name;

@Column
private String summary;

@Column
private double price;

@Column
private String description;

@Column(name="sDate", insertable=false, updatable=false, columnDefinition="timestamp default current_timestamp")
@Generated(value=GenerationTime.INSERT)
@Temporal(TemporalType.TIMESTAMP)
private  Date sDate;

@Temporal(TemporalType.TIMESTAMP)
private Date cDate;
sDate
cDate
分别是开始日期和结束日期
sDate
是自动插入的当前日期,
cDate
是卖方通过表单输入的截止日期。因此,我试图通过使用JSP表单从卖家处获取输入,将(名称、摘要、价格、描述和截止日期)插入mysql。将插入除日期之外的所有数据。数据库中的日期值为空。为什么会这样


任何帮助都将不胜感激。我为这个问题搜索了很多,但没有找到解决方案。

我想这是因为日期的@Column注释中有“Insertable=false”

boolean insertable
(Optional) Whether the column is included in SQL INSERT statements generated by the persistence provider.
Default value:
true
Since:
JPA 1.0
参考:


尝试删除它。

当设置
insertable=false
时,必须通过数据库机制(如Oracle中的触发器或默认值)提供此列的值。应用程序代码不会为您生成时间戳。

您好,谢谢回复。但我说的是cDate而不是sDate。sDate很好,当前时间戳会自动插入mysql,但其值是从jsp表单获得的sDate(例如,卖方输入(名称、摘要、价格、说明、投标截止日期),因此不会插入此截止日期/cDate)。我认为,当从表单中获取数据时,日期值是字符串格式的,并且没有转换为DATETIME格式,但是如何在spring控制器类中转换它??