2016-03-23 21 views
1

У меня есть класс, содержащие:java.sql.Date не вставлен в DataTables

@Column(name = "end_date") 
private Date endDate; 

и это сеттер

public void setEndDate() { 
    endDate = new java.sql.Date(Calendar.getInstance().getTime().getTime()); 
    System.out.println(endDate); 
} 

Когда я звоню сеттер, и проверьте еще раз, если значение правильно, все в порядке. (даже getEndDate().getClass()). Однако, когда я сохраняю свой объект в PostgreSQL (myObject.persist()), в столбце END_TIME нет значения. Другие значения верны.

Кто-нибудь знает, в чем проблема?

Кроме того, я должен отметить, что спящий режим устанавливается для создания таблиц SQL

сеттер и геттер:

public void setEndDate(Date endDate) { 
    setEndDate(); 
} 
public Date getEndDate() { 
    return endDate; 
} 
+1

Правильно ли я понимаю, что столбец называется END_TIME в таблице и end_date в теге @Column? Это может объяснить ... :-) –

+0

С частным полем, спящий режим будет использовать стандартные компоновщики java bean и getters. Можете ли вы опубликовать другие сеттеры (которые принимают аргумент) и получатели, которые у вас есть для этого поля на этом компоненте? – AndyN

+0

OleV.V, именно я написал end_time uppercased. @AndyN, у меня нет сеттера, который принимает параметр, я думаю, есть проблема – UnguruBulan

ответ

1
  1. импорта java.util.Date вместо импорта java.sql.Date
  2. назначить текущую дату в соответствии следующий код
  3. даты по умолчанию Присвоить при создании объекта этого объекта, если пользователю необходимо изменить, то с помощью метода установки на время выполнения
  4. попробовать это будет работать

    @Column(name = "END_TIME") 
    private Date endDate = new Date(); 
    
    public void setEndDate(Date endDate) { 
        this.endDate = endDate; 
    } 
    
    public Date getEndDate() { 
        return endDate; 
    } 
    
+0

Это работает, спасибо человеку! По-прежнему не понимаю, почему мой подход не работал – UnguruBulan

+0

ваш прием :) –

0

Я использую java.util.Date для этого случая, и изменить отображение вашего @column как

@Column(name = "end_time") 
private Date endDate = new Date(); 

public void setEndDate(Date endDate) { 
    this.endDate = endDate; 
} 

public Date getEndDate() { 
    return endDate; 
} 
+0

такое же. no value в базе данных – UnguruBulan

+0

Я вижу, что вы отмечаете столбец с помощью end_date, но проверяете значение в END_TIME, что-то не так? \ – VinhNT

+0

Я уже говорил вам, что я верхнее имя столбца. В базе данных это «end_time» – UnguruBulan

Смежные вопросы