- ben
JPA'daki tabloları ele aldığım gibi (@Table ek açıklama vb. Kullanarak) görebildiğimi okudum. Ancak, birincil anahtar olmadan, EVERY COLUMN'dan (aslında, Hibernate'in tersine mühendislik aracının varsayılan olarak yaptığı gibi) bir bileşik anahtarı etkili bir şekilde yapmak zorundayım. Bununla birlikte, bunu yaparsam istenmeyen yan etkiler de vardır. E.g.JPA
birincil anahtarın nitelikler yerine görünümleri yönlendiren tüm size kod yazmak zorunda.
myViewObject.getPrimaryKey() getFirstName()
"findBy kullanmak edememek ... "Bahar Deposu'ndaki yöntemler (bu özellik görünümün" tanımlayıcısının "bir parçası olduğundan ve aslında özniteliklerinden biri değil).
Sorum edilir: nasıl kolayca JPA kullanarak kendi özelliklerini erişebilir gibi bir oldu böyle de harita görünümlerinde mı?
Not: Tamamen yanlış yaklaşım kullandığımı söylemekten oldukça memnunum. Bu böyle ortak bir sorun gibi görünüyor daha iyi bir çözüm olmak zorunda.
Kullandığım bir numara, birden çok kayıt döndürme potansiyelinin kaçının olduğunu görmek ve tüm bu durumlarda tüm kayıtlar için benzersiz kalacak bir alan olup olmadığını görmek için görünümde olası sorguları analiz etmektir. Böyle bir senaryo bulabilirseniz, ORM sadece tek bir sorgunun sonuçları arasındaki tekliği önemsemediği için birincil anahtar olmasa bile bu alanı birincil anahtar olarak atayabilirsiniz. Ancak, ikinci seviye önbelleği kullanamayacağınızı unutmayın. Bu hile geçerli olmayan durumlarda, birincil anahtar içerecek şekilde görünüm için sorguyu değiştiririm. – manish
"getFirstName()" gibi temsilci yöntemleri yazarken, bunu this.getPrimaryKey(). GetFirstName() 'döndüren bir şey yok. Öyleyse sadece uzun versiyonu bir kez yazman gerekiyor. Yanlış bir yaklaşım olarak, bizim uygulamasında 400'den fazla Varlıklar/Tablolar var ve tek bir View-Varlığı yok. Bir kez kullanmayı denedim çünkü yardım edeceğini düşündüm, ancak sorunlara neden oldu, bu yüzden aynı işi yapan JPQL'de aynı 'görünümü' oluşturdum ve bana daha fazla esneklik sağladım. – DuncanKinnear