SORU
26 Mayıs 2009, Salı


Yeniden takmak Hazırda bulunan nesneleri müstakil için doğru yol nedir?

Hatalar neden olacak olan yeniden takın aynı kimlik bir nesne zaten oturum OLMAYABİLİR, ancak hazırda bir oturum için nesneleri müstakil, gerek bir durum var.

Şu anda, iki şeyden birini yapabilirim.

  1. getHibernateTemplate().update( obj ) Bu ve eğer bir nesne zaten mevcut değilse. sadece Hazırda Beklet oturumunda çalışır. İstisnalar verilen tanımlayıcı bir nesne belirten zaten ihtiyacım olduğunda oturumda daha sonra varsa atılır.

  2. getHibernateTemplate().merge( obj ) Bu ise bir nesne hazırda oturumu varsa ve yalnızca çalışır. Özel durumlar nesne eğer bunu kullanırsam bir sonraki oturumda olmam gerektiği zaman atılır.

Bu iki senaryo göz önüne alındığında, ne jenerik nesnelere oturumları ekleyebilir miyim? Daha zarif bir çözüm yolu olmalı gibi durumlar bu sorunun çözümü akışını kontrol etmek için kullanmak istemiyorum...

CEVAP
14 Aralık 2010, Salı


JPA bayat müstakil bir varlık dikmek için yol yok gibi görünüyor.

merge() DB, bayat devlet itecektir ve herhangi bir müdahale güncellemeleri üzerine.

refresh() müstakil bir varlık olarak olamaz.

lock() müstakil bir varlık olarak açıklanamaz ve bu olabilir, ve varlık yeniden bağlayın olsa bile, arama 'lock' argümanı 'LockMode.YOK' kilitleme olduğunu ima ediyorsun, ama kilitleme yok, API en sıra dışı parça gördüğüm tasarım.

Sıkışmış. detach() bir yöntem, ama hayır attach() reattach()var. Nesne yaşam döngüsü içinde bariz bir adım için kullanılamaz.

Benzer soru sayısına bakarsak yaklaşık JPA, eğer JPA varsa bile tutarlı bir model var, iddia gibi görünüyor kesinlikle en programcılar zihinsel model maçı değil kaç saat çalışmakla lanetlenmiş kim anlıyor ki ne kadar basit şeyler yapmak, ve önbellek ile sonuna kadar JPA almak için uygulamaları her yerinden yönetimi kodu.

Bayat müstakil senin varlığın atmak bunu yapmak için tek yol gibi görünüyor ve aynı id ile sorgu yapmak, L2 veya DB vuracaktır.

Mik

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • LavcoPriceTech

    LavcoPriceTe

    21 AĞUSTOS 2010
  • LimeFire

    LimeFire

    2 ŞUBAT 2012
  • Nick Pitera

    Nick Pitera

    8 NİSAN 2006