JPA varlıklarını Oracle 10g ile birlikte kullanırken aşağıdaki çok sinir bozucu davranışları yaşıyorum.JPA Varlıkları, Oracle 10g ve Takvim Türü özellikleriyle ilgili bir Sorun mu var?
Şu varlığa sahip olduğunuzu varsayalım. Birincil anahtar NUMARASI sütun "ID" ve zaman damgası sütun "activationDate" ile bir tablo T_ORDER olacak DB böylece
@Entity
@Table(name = "T_Order")
public class TOrder implements Serializable {
private static final long serialVersionUID = 2235742302377173533L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
@Column(name = "activationDate")
private Calendar activationDate;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Calendar getActivationDate() {
return activationDate;
}
public void setActivationDate(Calendar activationDate) {
this.activationDate = activationDate;
}
}
Bu işletme, Oracle 10 g eşleştirilir.
Bu sınıfın bir örneğini "15 Eylül 2008 00:00 AM" etkinleştirme tarihiyle oluşturduğumu varsayalım. Yerel saat dilimim GMT + 02: 00 olan CEST. Bu nesneyi sürdürdüğümde ve sqlplus kullanarak T_ORDER tablosundan veriyi seçtiğimde, tablodaki gerçekte "14. Sep 2008 22:00" nin saklandığını görüyorum, o zamana kadar tamam, çünkü oracle db zaman dilimi GMT'dir.
Ama şimdi can sıkıcı olan bölüm. Bu varlığı JAVA programıma geri okuduğumda, oracle zaman diliminin göz ardı edildiğini ve "14 Eyl 2008 22:00 CEST" in yanlış olduğunu öğrendim.
Temel olarak, DB'ye yazılırken, saat dilimi bilgisi kullanılır, okunurken göz ardı edilir.
Bunun için herhangi bir çözüm var mı? Tahminimce en basit çözüm, oracle dbs timezone'u GMT + 02'ye ayarlamak olurdu, ama ne yazık ki aynı sunucuyu kullanan başka uygulamalar olduğu için bunu yapamam.
Biz zaten JPA ve zaman damgaları ile ilgili sorunlar payımız oldu Hazırda 3.2 Oracle 10g ince JDBC sürücüsü
Yanıtladığınız için teşekkür ederiz. Yukarıda bahsettiğiniz aynı oracle forum dizisine rastladım. Ne yazık ki verilen tüm çözümler EclipseLink denilen bir şeyle ilgilidir ve gerçekten yeni bir kalıcılık API uygulamasına geçmek istemiyorum. – huo73
Açıklamalar JPA ek açıklamalarıdır, bu nedenle eclipselink'e özgü değildir. Onu hazırda bekletdim ve iyi çalışıyorlar. – JeroenWyseur