HQL kullanarak 'null' sütuna nasıl yazılır?
UPDATE tablo SET alanı = null eşdeğerdir geçerli HQL dize, nasıl oluşturulur
....
HQL kullanarak 'null' sütuna nasıl yazılır?
UPDATE tablo SET alanı = null eşdeğerdir geçerli HQL dize, nasıl oluşturulur
....
toplu HQL güncellemek ifade ediyor mu? Bu
UPDATE myEntity e SET e.myProperty = null WHERE ...
Ayrıca kodunda yukarıdaki
UPDATE myEntity e SET e.myProperty = :param WHERE ...
bir parametreli sürümünü kullanabilirsiniz deneyin:
int updatedEntities = session.createQuery(updateQueryHQL)
.setString("param", myValue) // or .setString("param", null)
.executeUpdate();
Detaylar için documentation bakınız.
Toplu güncelleştirmeler yapmıyorsanız, mülkünüzü NULL olarak ayarlamanız ve öğeyi normal olarak sürdürmeniz gerekir.
Teşekkürler, ama ... her iki sürümde de HibernateException var! setString ("param", myValue) executeUpdate(); yalnızca myValue boş değilken çalışır! –
Ne tür bir HibernateException (hata ne diyor)? Tablonuz o sütunda NULL'lere izin veriyor mu? Bu özellik aslında bir String mi yoksa başka türde mi? – ChssPly76
1. Tablo sütunu NULLs 2'ye izin verir. Özellik aslında Dize ('Tarih' sütunuyla aynı sorun) 2. Hazırda bekletme hatası maalesef geçersizdir ('UPDATE izni nesne eksik .....') . True değil: myValue boş bir dize veya boş değer değilse - istenen sütun sorunsuz olarak güncelleştirilir –
Güncelleme bildiriminizin neden HQL'de yapılması gerekiyor? Sistemdeki bir varlığa eşlenen bu tablo var mı? Bunu yaparsanız, o sütunla eşlenen mülkünü null olarak ayarlayabilir ve bu varlık üzerinde tasarruf edebilirsiniz. Örneğin.
myObject.setMyProperty (null); getSessionFactory(). GetCurrentSession(). Save (myObject);
Bu sizin için uygun olmalı, ancak söz konusu tabloyla eşlenmiş bir varlığa sahip olmanız gerekir.
aptalca bir soru olabilir, ancak bu sql güncelleştirmesi bazı sql konsollarından çalışıyor mu? yani 'alan' sütununda belki NULL değil bir kısıtlama var mı? –
sql tamam - konsoldan iyi çalışıyor! –