Giriş
Şu satırı dahil ederiz.
- Yani bu anotasyon LocalDate ve LocalDateTime ile çalışmıyor.
- Bu anotasyon ile java.util.Date ve java.util.Calendar tiplerinin veritabanında hangi çözünürlükte saklanacağı belirtilir. Çünkü java.sql.Date, java.sql.Time,java.sql.Date.Timestamp sınıflarının veritabanında nasıl saklanacağı belli. Ancak java.util.Date ve java.util.Calendar sınıflarının nasıl saklanacağı belli değil.
- Eğer bu anotasyonu kullanmazsak örneğin Hibernate java.util.Date nesnesini timestamp olarak saklamaya karar verebilir. Açıklaması şöyle.
DATE Alanı
Çözünürlük olarak 08-07-17 gibi bir değer elde ederiz.
Örnek
Şöyle yaparız.
Çözünürlük olarak 08-07-17 04:33:35.870000000 PM gibi bir değer elde ederiz.
Örnek
Şöyle yaparız.
Şu satırı dahil ederiz.
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
- Bu anotasyon eski java.util.Date veya java.util.Calendar sınıfları için var. Eğer bu sınıflar yerine Java 8 ile gelen yeni sınıfları ve JPA 2.2 kullanırsak bence her şey çok daha kolay.- Yani bu anotasyon LocalDate ve LocalDateTime ile çalışmıyor.
- Bu anotasyon ile java.util.Date ve java.util.Calendar tiplerinin veritabanında hangi çözünürlükte saklanacağı belirtilir. Çünkü java.sql.Date, java.sql.Time,java.sql.Date.Timestamp sınıflarının veritabanında nasıl saklanacağı belli. Ancak java.util.Date ve java.util.Calendar sınıflarının nasıl saklanacağı belli değil.
- Eğer bu anotasyonu kullanmazsak örneğin Hibernate java.util.Date nesnesini timestamp olarak saklamaya karar verebilir. Açıklaması şöyle.
Note, however, that Hibernate works without @Temporal by defaulting to a temporal type of TIMESTAMP.- Ayrıca eğer alanı bu tipleri anotasyon ile işaretlemezsek kaydederken sütun null olarak kaydedilebilir. Alana değer atamak istersek @org.hibernate.annotations.CreationTimestamp veya @org.hibernate.annotations.UpdateTimestamp kullanılabilir.
DATE Alanı
Çözünürlük olarak 08-07-17 gibi bir değer elde ederiz.
Örnek
Şöyle yaparız.
@Temporal(TemporalType.DATE)
public Date startDate;
Örnek
Şöyle yaparız.
TIMESTAMP AlanıŞöyle yaparız.
@Entity
public class Patient {
...
@Temporal(TemporalType.DATE)
@Column(name="dob", nullable=false)
private Date dob;
...
}
Çözünürlük olarak 08-07-17 04:33:35.870000000 PM gibi bir değer elde ederiz.
Örnek
Şöyle yaparız.
@Temporal(TemporalType.TIMESTAMP)
public Date startDate;
Hiç yorum yok:
Yorum Gönder