Hazırda bekleyen ölçütleri kullanarak sysdate nasıl eklenir/güncelleştirilir?

Hazırda bekletme ile bahar kullanıyorum. benim veritabanım oracle. Kayıtları sysdate ile güncellemek/kaydetmek istiyorum. HQL kullanarak sysdate ekleyebiliriz/güncelleyebiliriz. ancak Sritdat'ı kullanarak sysdate'in nasıl ekleneceğini bilmiyorum. Lütfen bana yardım et.

Teşekkürler!

0
Merhaba Nizet, Cevabınız için teşekkürler. sysdate ile kayıt eklemek/güncellemek istersem HQL'yi tek başına kullanmam gerekir mi? lütfen bana öner.
katma yazar user1016403, kaynak
Merhaba Nizet Cevabınız için teşekkürler. Bir varlığı ve değiştirilmiş tarihi yüklediğimi düşünün. Şimdi basitçe kaydet/birleştirme() doğru aramak gerekiyor?
katma yazar user1016403, kaynak
Merhaba Nizet Bağlantıyı paylaştığınız için teşekkürler. Sorum şu: db'den müşteri tarafına aldığım çalışan varlığı düşünün. Artık kullanıcı arayüzünde kullanıcı adı değiştirildi. şimdi gönderiminde, değişiklikleri kaydetmek için session.saveOrUpdate() öğesini çağırmalıyım? Yanlışım varsa lütfen düzelt.
katma yazar user1016403, kaynak
Ölçüt eklemek veya güncellemek için ölçüt kullanılamaz. Sadece seç. Sorunuzun hicbiri mantıklı değil.
katma yazar JB Nizet, kaynak
hayır, öğeyi oluşturmalı/yüklemelisiniz ve setSomeDate (yeni Tarih ()) öğesini çağırmalısınız.
katma yazar JB Nizet, kaynak
Hayır, hiçbir şeye ihtiyacın yok. Hazırda bekletme, gerektiğinde değişiklikleri otomatik olarak temizler (taahhüt zamanında, en azından). Bunu anlamak çok önemli. Hazırda bekleme referans kılavuzunu ve özellikle bu bölümü okuyun: docs.jboss.org/hibernate/core/3.6/reference/en-US/html_singl‌ e/& hellip;
katma yazar JB Nizet, kaynak
Modelinizi neden Oracle db'ye bağlı hale getirdiniz?
katma yazar ssedano, kaynak
Bu yüzden bir baksana dedim. Belki de ihtiyaçlarını karşılar.
katma yazar ssedano, kaynak
@UdoFholl, yalnızca her bir güncellemede sütun değiştirilecekse uygun olur.
katma yazar Xavi López, kaynak

1 cevap

HQL ekleme/güncelleme deyiminde sysdate kullanmanın kolay bir yolu yoktur. HQL seçimlerinde current_timestamp() işlevini kullanabilir, ancak güncelleme/ekleme yapamazsınız.

Bu güncellemeyi bazı izole durumlarında yapmanız gerekip gerekmediği veya bu sütunun her zaman öğesi Ekleme/herhangi bir Güncelleştirme tarihinde veritabanının tarihine sahip olup olmadığına ilişkin soru net değildir.

  • İhtiyacınız olan tekabül eden güncellemeler olması durumunda: Bu, @Formula (value =" dual'den sysdate seç " ) . Bu özellik sysdate olarak adlandırılmışsa, MyEntity e set e.myDate = e.sysdate komutunu kullanarak bunu başarabilirsiniz. Bu yaklaşımın Oracle'a doğrudan bağımlılık getirdiğini göz önünde bulundurun.

  • Varlık üzerinde bir güncelleme yapıldığında sütunun her zaman veritabanının zaman damgasıyla güncellenmesi durumunda, @UdoFholl işaret etti veya bir tetikleyici kullanın (veri tabanındaki kontrol seviyeniz varsa ) ve @Generated ile alana açıklama ekleyiniz .

1
katma
Geçerli bir çözümdür. Ama Oracle'a bir bağımlılık getiriyorsun.
katma yazar ssedano, kaynak
Formül bir SQL olmalı ve içerik derleme zamanı sabiti olması gerektiğinden, bu mümkün değildir. Ama çözümün gayet iyi çalışıyor.
katma yazar ssedano, kaynak
Cevabı + 1, kredi için teşekkürler, ama gerekli değildir! hehe
katma yazar ssedano, kaynak