В моей базе данных MySql я храню дату как тип DATE, поэтому я храню только YYYY-MM-DD без какой-либо информации о времени (в другой таблице я использую DATETIME для хранения также информации о времени). Моя сущность:

@Entity
@Table(name = "clientlicense", catalog = "ats")
public class ClientLicense implements java.io.Serializable{

    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    private Integer idClientLicense;
    private Date startDate;
    private Date endDate;
    private int counter;
    private String macAddress;
    private String cpuId;

Но когда я получаю startDate и endDate из своего WebUi, я получаю даже время вроде 2016-01-29 00: 00: 00.0 Как сохранить в базе только дату? Должен ли я работать со своим HTML-кодом? Спасибо

2
luca 1 Фев 2016 в 19:39

2 ответа

Лучший ответ

Попробуйте использовать аннотации @Temporal JPA.

Аннотирование поля и изменение типа должны помочь:

@Temporal(TemporalType.TIMESTAMP)  
private java.util.Date startDate;

Допустимые значения:

TemporalType.DATE
TemporalType.TIME
TemporalType.TIMESTAMP

Это эквивалент

DATE – equivalent of java.sql.Date
TIME – equivalent of java.sql.Time
TIMESTAMP – equivalent of java.sql.Timestamp
1
Fonexn 1 Фев 2016 в 17:03

Мне кажется, что ваше отображение объекта нормально. Класс java.util.Date также отправляет информацию о времени.

Вам нужно будет отформатировать объект даты на веб-уровне. Реализация зависит от технологии, которую вы используете во внешнем интерфейсе.

Например, если вы находитесь на простой странице JSP, вы можете отформатировать ее с помощью объекта java.text.SimpleDateFormat.

0
Luca Putzu 1 Фев 2016 в 17:03