有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Spring、JPA和hibernate的java问题

我正在使用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;

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

任何帮助都将不胜感激。我找了很多这个问题,但没有找到解决办法


共 (2) 个答案

  1. # 1 楼答案

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

  2. # 2 楼答案

    我认为这是因为日期的@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
    

    参考:http://www.objectdb.com/api/java/jpa/Column

    试着移除它