Forum İçeriği > Persistence API's > Bidirectional OneToOne
|
|
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.
|

Aktivite Puanı: 36