SORU
22 Aralık 2010, ÇARŞAMBA


İnat arasındaki fark nedir() ve birleştirme() uykusuna yatarlar?

İnat arasındaki fark nedir() ve birleştirme() uykusuna yatarlar?

persist() GÜNCELLEME VE EKLEME sorgusu, örneğin oluşturabilirsiniz:

SessionFactory sef = cfg.buildSessionFactory();
Session session = sef.openSession();
A a=new A();
session.persist(a);
a.setName("Mario");
session.flush();

bu durumdasorgubu gibi oluşturulur:

Hibernate: insert into A (NAME, ID) values (?, ?)
Hibernate: update A set NAME=? where ID=?

persist() yöntemoluştururbir Ekleme ve Güncelleme.

merge() ile şimdi

SessionFactory sef = cfg.buildSessionFactory();
Session session = sef.openSession();
Singer singer = new Singer();
singer.setName("Luciano Pavarotti");
session.merge(singer);
session.flush();

Bu veritabanında görüyorum nedir:

SINGER_ID   SINGER_NAME
1           Ricky Martin
2           Madonna
3           Elvis Presley
4           Luciano Pavarotti

Şimdi bir kayıt merge() kullanarak güncelleştirme

SessionFactory sef = cfg.buildSessionFactory();
Session session = sef.openSession();
Singer singer = new Singer();
singer.setId(2);
singer.setName("Luciano Pavarotti");
session.merge(singer);
session.flush();

Bu veritabanında görüyorum nedir:

SINGER_ID   SINGER_NAME
1           Ricky Martin
2           Luciano Pavarotti
3           Elvis Presley

CEVAP
22 Aralık 2010, ÇARŞAMBA


JPA specification Bu işlemleri anlambilim, javadoc içinde daha çok net bir açıklama içerir:

Bu semantiğidevam operasyon, bir varlık için uygulanan X aşağıdaki gibi

  • X eğer yeni bir varlık, değil mi olur başardı. Varlık X olacak ya daha önce de veritabanına girilen ya sonuç olarak işlemek işlem temizleme işlemi.

  • Eğer X a ise yönetilen varlık hazır olduğunu geçerli işlem tarafından dikkate alınmaz. Ancak, işlem devam varlıklar X tarafından başvurulan,basamaklı bu X-ilişkiler eğer diğer kurumlar ile açıklamalı cascade=PERSIST cascade=ALL açıklama öğe değeri veya belirtilen denk XML tanımlayıcı eleman.

  • Eğer X, kaldırılan bir kişi ise, yönetilen olur.

  • Eğer X a ise müstakil nesne, EntityExistsException atılabilir operasyon çağrılır devam etmesi durumunda, veya EntityExistsException PersistenceException başka olabilir floş atılan ya da zaman taahhüt.

  • İçin tüm varlıklar tarafından başvurulan Y X, eğer, ilişki Y ilişkisi açıklamalı olmuştur cascade ile öğe değeri cascade=PERSIST cascade=ALL işlem Y. uygulanır sürüyor


Bu semantiğibirleştirmeoperasyon bir varlığa uygulanan X aşağıdaki gibidir:

  • X eğer müstakil bir varlık, devlet X önceden varolan bir kopyalandı. varlık yönetilen örnek X' aynı kimlik ya da yeni bir yönetilen bir kopyasını X' X oluşturulur.

  • Eğer X yeni bir varlık ise örnek, yeni bir yönetilen varlık örnek X' oluşturulur ve devlet X yeni yönetilen kopyalar. varlık örnek X'.

  • Eğer X a ise kaldırılan varlık örneği, IllegalArgumentException olacak tarafından oluşturuldu işlemi (veya birleştirme kaydetme başarısız olur işlem).

  • Eğer X yönetilen bir varlık olduğunu göz ardı ederek. ancak operasyon, birleştirme operasyon için basamaklı birleştirme varlıkları ilişkiler tarafından başvurulan eğer bu ilişkileri varsa X cascade ile açıklama yapılmış öğesi değer cascade=MERGE 25* *açıklama.

  • Herkes için varlıkları ilişkiler tarafından başvurulan Y X cascade unsuru olan değeri cascade=MERGE* *27, Y birleştirilmiş ardışık Y gibi. Herkes için bu X, Y, X' ayarlanır başvurulan başvuru Y'. (Eğer X unutmayın. o zaman X yönetilen aynı nesnedir '.) X

  • Eğer X bir varlık X için birleşti', başka bir varlık için bir referans ile Y cascade=MERGE cascade=ALL nerede belirtilmemiş, daha sonra navigasyon aynı derneğin X' faizleri yönetilen nesne Y' ile başvuru aynı kalıcı bir kimlik olarak Y.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Eric Magidson

    Eric Magidso

    4 Ocak 2009
  • laptopmag

    laptopmag

    25 Ocak 2008
  • schmittastic

    schmittastic

    9 EYLÜL 2009