Проблема со Spring, JPA и hibernate - PullRequest
0 голосов
/ 21 декабря 2011

Я использую 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 - дата закрытия, которая будет введена продавцом через форму. Итак, я пытаюсь вставить (имя, резюме, цена, описание и дата закрытия) в MySQL, принимая данные от продавца, используя форму JSP. Все данные вставляются за исключением даты. Значение даты в базе данных равно NULL. Почему это так?

Любая помощь будет принята с благодарностью. Я много искал эту проблему, но не смог найти решение.

Ответы [ 2 ]

1 голос
/ 21 декабря 2011

При установке insertable=false необходимо каким-то образом предоставить значение для этого столбца с помощью механизмов базы данных, таких как триггер в Oracle или значение по умолчанию.Код приложения не будет генерировать временную метку для вас.

1 голос
/ 21 декабря 2011

Я думаю, это потому, что у вас есть "Insertable = false" в аннотации @Column для даты.

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

Ref: http://www.objectdb.com/api/java/jpa/Column

Попробуйте удалить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...