Forum İçeriği > Persistence API's > Bidirectional OneToOne

rcnpydn 18 ay önce
Aktivite Puanı: 36
Üç tablom var.A tablosu ile B tablosu arasında onetoone ilişki var.C tablosu da B tablosunun detay tablosu.Datatable de C tablosundan EL ile A tablosuna kadar ulaşabiliyorum.Yalnız şöyle bi sorunum var.C tablosunda kendi alanlarını güncellediğimde.Datatable da A tablosuna ait veriler gözükmüyor.Projeyi redeploy yapınca gözüküyor.Ben bu datatable kullanımında mantık hatası falan mı yapıyorum.Bu kullanım yerine View falan mı kullanmalıyım?
mehmet celiksoy 18 ay önce
Aktivite Puanı: 58
Merhaba, eger biraz daha detayli anlatirsan yardim etmeye calisirim. mümkünse kullandigi kod lari da yazarsan iyi olur.
Dasil bir DataTable kullaniyorsun. Richfaces ve baska bir Frameworkten mi?
rcnpydn 18 ay önce
Aktivite Puanı: 36
Problemin frameworkten kaynaklanmadığına eminim.Veriyi tekrar çekip başka bi datatableda götseriyorum.Yine aynı şekilde redeploy etmeden hiç bi şekilde göstermiyo.Kodları akşam ekleyebilirim.
mehmet celiksoy 18 ay önce
Aktivite Puanı: 58
Problem burda entityManager in verileri nezaman flush() ettiginde olabilir. Senin persist() yapman bunlarin veritabanina yazildigi anlamina gelmiyordur. Simdi tam nasil bir sistemle, hengi frameworklerle ve teknolojilerle calistigini bilmeden bunu söylüyorum.
Önce projeyi redeploy etmek yerine islemi yaptiktan sonra sistemde cikis yap(logout) ve takrar baglan. Bakalim degisiklikleri görebilecekmisin?
rcnpydn 18 ay önce
Aktivite Puanı: 36
Problemin flush ile bi ilgisi yok sanırım.Phpmyadmin ile kontrol ediyorum veritabanına yazmış oluyo.Ayrıca gelenyazi datatable güncelleniyo.Datatable da üç tablodan ilişki yoluyla verileri alıyorum ondan mı bilmiyorum.Artık pas dedim kodları yazıyorum:Tablonun Gelen Yazıdan Çektiği Veirler Sadece Redeploy sonrası gözüküyo.Olayın onetoone ile de ilgisi yokmuş.Onetomany de yapsam üçüncü tablodan veri alamıyorum.Yardım ederseniz sevinirim.


Gelen Yazı:
public class GelenYazi implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "idGELEN_YAZI")
    private Integer idGELENYAZI;
    @Column(name = "EVRAK_NUMARA")
    private Integer evrakNumara;
    @Column(name = "KAYIT_TARIHI")
    @Temporal(TemporalType.DATE)
    private Date kayitTarihi;
    @Column(name = "YAZININ_TARIHI")
    @Temporal(TemporalType.DATE)
    private Date yazininTarihi;
    @Column(name = "YAZININ_SAYISI")
    private String yazininSayisi;
    @Column(name = "YAZININ_OZU")
    private String yazininOzu;
    @JoinColumn(name = "GUNLU_YAZILAR_idGUNLU_YAZILAR", referencedColumnName = "idGUNLU_YAZILAR")
    @OneToOne(fetch = FetchType.EAGER)
    private GunluYazilar gunluYazilar;
    @JoinColumn(name = "GELDIGI_YER", referencedColumnName = "idDAIRE_ADLARI")
    @ManyToOne(fetch = FetchType.EAGER)
    private DaireAdlari daireAdlari;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "gelenYazi", fetch = FetchType.EAGER)
    private ListhavaleEdilenServislerList;

Gunlu Yazı: 
public class GunluYazilar implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "idGUNLU_YAZILAR")
    private Short idGUNLUYAZILAR;
    @Column(name = "EVRAK_NUMARA")
    private Integer evrakNumara;
    @Column(name = "CEVAP_TARIHI")
    @Temporal(TemporalType.DATE)
    private Date cevapTarihi;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "gunluYazilar", fetch = FetchType.EAGER)
    private ListgunluYaziDetayList;
    @OneToOne(mappedBy = "gunluYazilar", fetch = FetchType.EAGER)
    private GelenYazi gelenYazi;
Gunlu Yazı Detay:
public class GunluYaziDetay implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "idGUNLU_YAZI_DETAY")
    private Integer idGUNLUYAZIDETAY;
    @Column(name = "YAZININ_SAYISI")
    private Integer yazininSayisi;
    @Column(name = "CEVAP_YAZILDI")
    private Boolean cevapYazildi;
    @Column(name = "YAZININ_TARIHI")
    @Temporal(TemporalType.DATE)
    private Date yazininTarihi;
    @JoinColumn(name = "GUNLU_YAZILAR_idGUNLU_YAZILAR", referencedColumnName = "idGUNLU_YAZILAR")
    @ManyToOne(optional = false, fetch = FetchType.EAGER)
    private GunluYazilar gunluYazilar;
Managed Bean deki query
public List getGunluYazilar() {
        try {
            Query q = em.createQuery("select gdy from GunluYaziDetay gdy");
            return q.getResultList();
        } finally {
        }
    }

Datatable:
            <p:dataTable var="gnlYaz" value="#{gunluYazilarMBean.gunluYazilar}" scrollable="true" height="200px" update="ekleBtn"
                         selection="#{gunluYazilarMBean.selectedGYDetay}" dynamic="true" selectionMode="single" width="580"
                         loadingMessage="Yükleniyor...">
                <p:column width="40">
                    <f:facet name="header">
                        <h:outputText value="No"/>
                    </f:facet>
                    <h:outputText value="#{gnlYaz.gunluYazilar.evrakNumara}"/>
                </p:column>
                <p:column width="100">
                    <f:facet name="header">
                        <h:outputText value="Son Cevap Tar."/>
                    </f:facet>
                    <h:outputText value="#{gnlYaz.gunluYazilar.cevapTarihi}">
                        <f:convertDateTime pattern="dd/MM/yyyy" timeZone="Turkey"/>
                    </h:outputText>
                </p:column>
                <p:column width="100">
                    <f:facet name="header">
                        <h:outputText value="Gel.Yaz.Tar."/>
                    </f:facet>
                    <h:outputText value="#{gnlYaz.gunluYazilar.gelenYazi.yazininTarihi}">
                        <f:convertDateTime pattern="dd/MM/yyyy" timeZone="Turkey"/>
                    </h:outputText>
                </p:column>
                <p:column width="100">
                    <f:facet name="header">
                        <h:outputText value="Gel.Yaz.No"/>
                    </f:facet>
                    <h:outputText value="#{gnlYaz.gunluYazilar.gelenYazi.yazininSayisi}"/>
                </p:column>
                <p:column width="200">
                    <f:facet name="header">
                        <h:outputText value="Geldiği Yer"/>
                    </f:facet>
                    <h:outputText value="#{gnlYaz.gunluYazilar.gelenYazi.daireAdlari.daireAdi}"/>
                </p:column>
                <p:column width="40">
                    <f:facet name="header">
                        <h:outputText value="Gid.No"/>
                    </f:facet>
                    <h:outputText value="#{gnlYaz.yazininSayisi}"/>
                </p:column>
                <p:column width="200">
                    <f:facet name="header">
                        <h:outputText value="Hav.Ed.Birim"/>
                    </f:facet>
                    <h:outputText value="#{gnlYaz.belediyeBirimler.birimAdi}" />
                </p:column>
                <p:column width="100">
                    <f:facet name="header">
                        <h:outputText value="Cvp.Verilmiş"/>
                    </f:facet>
                    <h:selectBooleanCheckbox value="#{gnlYaz.cevapYazildi}" readonly="true"/>
                </p:column>
            </p:dataTable>            

mehmet celiksoy 18 ay önce
Aktivite Puanı: 58

Hersey normal görünüyor aslinda. Bende buna benzer bir yapiyi kullaniyourm. Ilk yazdigin yazida, verilerin redeploy dan sonra göründügünü söylemistin. Demekki Entity lerde bir problem yok. Iliskiler dogru.

Tam olarak bilgilerin nasil sekilde veritabanina yazildigini bilemiyorum ama söyle bir durum var;

diyelim ki sen A Transaction nindasin, birileri de baska bir transaction da verileri degistirdi. Ozaman sen o verileri göremezsin. O veriler veritabaninda olsalar bile.

Bu durumda senin o Entity i refresh yapman gerekli. Istersen bunu bir dene. Kayit isleminden sonra Entity entityManager.refresh() le güncelle. Bakalim verileri alacak mi veritabaninda. Yda bir test projesi olustur ayni yapiyla, bana gönder, yada bana mail at. Bir sekilde yardim etmeyi cok isterim.

Ben su anda J2EE, Seam, JBoss, Richfaces le calisiyorum, ve bu tür seyleri cok yaptim, böyle bir problemle karsilasmadim.

Ama sorunu anlamak icin Bu konuyla ilgili MBean lerin tamamina bakmak lazim.

Saygilar

rcnpydn 18 ay önce
Aktivite Puanı: 36
Hocam jta kullanıyorum.Refresh etmeyi beceremedim bi türlü.Uğraşıyorum.Bi sonuç elde edersem buraya yazarım
rcnpydn 18 ay önce
Aktivite Puanı: 36
refresh ile problemi çözdüm.Netbeans özelliklerini kullanarak zamandan kazandık.Geri ödemesi 1 hafta oldu.En azından acemiliği atmış olduk.

Latest Activity

yeni bir mesaj yolladı. TopLink EclipseLink
5 ay önce
mesaja yanıt verdi RE: HttpClient.
6 ay önce
mesaja yanıt verdi RE: HttpClient.
7 ay önce
yeni bir mesaj yolladı. HttpClient
7 ay önce
yeni bir mesaj yolladı. HttpClient
7 ay önce
yeni bir mesaj yolladı. Birt ile Raporlarma
10 ay önce
mesaja yanıt verdi RE: Hibernate.
10 ay önce
mesaja yanıt verdi RE: wicket kendi sayfama yonlendirme.
10 ay önce
yeni bir mesaj yolladı. wicket kendi sayfama yonlendirme
11 ay önce
yeni bir mesaj yolladı. wicket kendi sayfama yonlendirme
11 ay önce

Top Contributors

71
ertugrula
53
Abdulkadir Selcukoglu
49
Altuğ Bilgin Altıntaş
32
wicket_id_tolga
30
Taner Diler