Merhaba.

birden fazla ilişkiyi fetch eager ile çekmek istiyorum. eşlemeler list tipinde. IndexColumn anotasyonunu doğru kullanamıyorum, sürekli hata veriyor. name niteliğine anotasyonu kullandığım entity sınıfının index alananını set ediyorum. hata mı yapıyorum?

edit

@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.REMOVE, mappedBy = "araba") @IndexColumn(name="id") private List<araba> arabaList;

@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.REMOVE, mappedBy = "garaj") @IndexColumn(name="id") private List<ogrenci> garajList;

soruldu: 21 Şub '12, 07:11

lazy's gravatar image

lazy
146171724
cevap kabul oranı: 0%

değiştirildi: 16 Haz '12, 11:39

rahmanyazgan's gravatar image

rahmanyazgan ♦
4.4k83559

calismayan kodu da eklemedigin surece net cevap vermek guc olacaktir.

(22 Şub '12, 13:44) murat ♦ murat's gravatar image

haklısınız, geç kaldım ancak kodu ekledim

(26 Şub '12, 17:28) lazy lazy's gravatar image

Tam olarak tablo yapılarınıza, kullandığınız persistence layer'a dair bilgi vermediğiniz için emin olamamakla birlikte, sadece @IndexColumn anotasyonunun kullanımında değil, mappedBy tanımlarınızda da problem görünüyor. Yeterli bilgi olmadığından ben size @IndexColumn anotasyonuna dair bilgi vermek yerine, gerçekleştirmek istediğiniz şeyi, yani bu örnekte görülen objeleri db'den çekerken, ilişkide olan nesnelerin de çekilmesini sağlayacak anotasyondan bahsedeyim, tabi hibernate kullanıyorsanız.

@LazyCollection(LazyCollectionOption.FALSE)

Örneğinizdeki entity sınıfı Garaj olsun. İlişkideki tablolardaki foreign key de "garaj", Bu durumda bu anotasyonu bu örneğe uyarlarsak,

@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.REMOVE, mappedBy = "garaj") 
private List<araba> arabaList;

@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.REMOVE, mappedBy = "garaj") 
@LazyCollection(LazyCollectionOption.FALSE)
private List<ogrenci> garajList;

şeklinde bir kullanımda, veritabanından bir garaj nesnesi çektiğinizde ilişkideki araba ve garaj listesi objeleri de çekilmiş olacaktır...

permanent link

cevaplandı: 04 Mar '12, 06:50

hakdogan's gravatar image

hakdogan
2.1k31926
cevap kabul oranı: 43%

haklısınız, problemle ilgili yeterli bilgi vermeyi becerememişim. öneriniz işe yaradı. ilişkideki nesneleri tek select ile çekmek istiyorum ancak 1 ni çekebiliyorum. bu sorunu da aşmanın bir yolu var mı

(05 Mar '12, 11:20) lazy lazy's gravatar image

@lazy List yerine Set koleksiyonunu kullanın...

(08 Mar '12, 14:52) hakdogan hakdogan's gravatar image
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×109
×86
×5
×1

Soruldu: 21 Şub '12, 07:11

Görüntüleme: 1,209 kez

Son güncelleme: 16 Haz '12, 11:39

powered by BitNami OSQA