Hibernate öğrenmeye çalışıyorum çözemediğim bi kaç yer var birincisi hibernate.cfg.xml dosyasında
< property name="hibernate.hbm2ddl.auto"> create < /property>
bu satırı sadece 1 defaya mahsusmu kullanacağız yani veri tabanında tablolar oluştuktan sonra bunu değiştirip update olarak değiştirmem mi gerek. İkinci sorumda onetomany kullanarak bi kayıt işlemi yaptım öğrenci ve ders diye 2 sınıf var bi öğrenci birden fazla ders alabilir. şimdi bi öğrenci ve 2 ders olan bi kayıt yaptım düzgün çalıştı sonra bu tablolar üzerinde 2 ci bi kayıt işlemi yapayım dedim ve alttaki kodu kullandım.
Ogrenci ogr=new Ogrenci(); ogr.setONo(9); ogr.setAdi("as"); ogr.setSoyadi("sa"); ogr.setDogumTarihi("01.01.2015"); Ders d1=DersiGetir(1); ogr.getDersListesi().add(d1); SessionFactory sf=new Configuration().configure().buildSessionFactory(); Session ses=sf.openSession(); ses.beginTransaction(); ses.save(d1); ses.save(ogr); ses.getTransaction().commit(); ses.close();
Kısaca kodu açıklayayım yeni bi öğrenci oluşturuyorum ve onun derslerinede yukarda bahsettiğim ilk kayıtta eklediğim derslerde birini ekliyorum sonra bunu save kodu ile veritabanına kaydetmek istiyorum. DersiGetir() fonksiyonu veritabanına kayıtlı bi dersi çekiyor. Sorun şu veritabanından aldığım ders zaten veri tabanında olduğundan ona save kodunu kullanmak istemedim ama hata verdi yukardaki gibi yapıncada hersey duzgun oluyor ama dersi ikinci bi defa veri tabanına kaydediyor yeni bi DersNo ile. Sorun nerede acaba.