2011-01-30 28 views
7

Tôi đang sử dụng javax.persistence cho thực thể của tôi object.Mysql cho cơ sở dữ liệu đối tượng thực thể của tôi có một EntryDate lĩnh vựcJPA/hibernate tem thời gian không nhận được lưu trong cơ sở dữ liệu thực thể/đối tượng

@Column(name = "ENTRYDATE") 
private Date entryDate=new Date(); 

và khi tôi lưu đối tượng sử dụng phương thức saveOrupdate chỉ ngày được lưu. Tôi cũng muốn lưu dấu thời gian cùng với ngày tháng. Tôi không đặt ngày tháng rõ ràng vì tôi có đã được khai báo cùng với tuyên bố trường ở trên. Làm cách nào để tôi có thể tiết kiệm thời gian cùng với ngày tháng.

Cảm ơn bạn.

Trả lời

13

Sử dụng

@Temporal(TemporalType.TIMESTAMP) 

trên thuộc tính của bạn.

+4

Chính xác. Để làm rõ hơn nữa, nếu bạn đang sử dụng java.util.Date hoặc java.util.Calendar, bạn cần phải xác định kiểu thời gian (TemporalType.Date chỉ cho ngày, tháng và năm, TemporalType.TIME chỉ cho thời gian (giờ, phút) , giây) hoặc TemporalType.TIMESTAMP cho cả thời gian và ngày). Nếu bạn đang sử dụng java.sql.Date, java.sql.Time hoặc java.sql.Timestamp, chú thích @ Temporal là không cần thiết. – esaj

+2

Tôi đang sử dụng java.util.Date. Tôi cũng đã thử chú thích @Temporal. Nhưng dấu thời gian vẫn được lưu là 00:00:00 00. Tự hỏi tôi đang làm gì sai? Bất kỳ đề xuất? –

+0

@Daniel Tôi đang lưu hai phiên bản của Lịch. Tôi đã đặt dụ đầu tiên thành biến1 và cuộn cùng một ngày vào một tuần và lưu nó vào biến2. Khi tôi lưu đối tượng trong cơ sở dữ liệu, cả hai thuộc tính đều có cùng giá trị là giá trị của cá thể Lịch đầu tiên. Tôi không biết vấn đề là gì khi tôi in chúng trước khi kiên trì đối tượng, giá trị của chúng là những gì chúng cần. –

0
@Column(name = "ENTRYDATE") 
@Temporal(TemporalType.TIMESTAMP) 
private Date entryDate=new Date(); 

Cố gắng sử dụng này nếu bạn muốn lưu dấu thời gian nếu không bạn có thể sử dụng TemporalType.Date (đối với tiết kiệm chỉ ngày) và TemporalType.Time (đối với tiết kiệm chỉ có thời gian)

Các vấn đề liên quan