spring - JPA unable to assign a new persisted entity in a many to one relationship -



spring - JPA unable to assign a new persisted entity in a many to one relationship -

i have jpa entities defined bidirectional relationship many one, hereby:

@entity public class section implements serializable { private static final long serialversionuid = 1l; @id @sequencegenerator(name="departamento_id_generator",sequencename="departamento_seq") @generatedvalue(strategy=generationtype.sequence,generator="departamento_id_generator") @column(name="dep_id") private long id; @column(name="dep_desc") private string desc; //bi-directional many-to-one association academico @onetomany(mappedby="department") private set<proffesor> proffesors; //getters , setters } @entity @table(name="academicos") public class proffesor implements serializable { private static final long serialversionuid = 1l; @id @sequencegenerator(name="academicos_id_generator", sequencename="academicos_seq") @generatedvalue(strategy=generationtype.sequence,generator="academicos_id_generator") @column(name="acd_id") private long id; @manytoone(cascade={cascadetype.persist,cascadetype.merge}) @joincolumn(name="acd_depadscrito_dep") private section department; // getters , setters. }

after in transactional spring service have next code manipulate entities in way.

@transactional (propagation=propagation.required) public void createdepartmentwithexistentproffesor(string desc,long idavaiableprof) { // new section section dep = new department(); dep.setdesc(desc); hashset<proffesor> proffesors = new hashset<proffesor>(); dep.setproffesors(proffesors); // obtain right attached proffesor entity proffesor proffesor=daoquerybasic.getproffesorbyid(idavaiableprof); // asign relationship beetwen proffesor , section in both directions dep.addproffesors(proffesor); // persists section daodatabasic.insertdepartment(dep); // id value not right exception ora-0221 system.out.println("servicio: departamento creado con id: " + dep.getid()); }

as said in comments id of new section persisted not real database id within transaction, produced exception

exception in thread "main" org.springframework.orm.jpa.jpasystemexception: org.hibernate.exception.constraintviolationexception: not execute jdbc batch update ........ caused by: java.sql.batchupdateexception: ora-02291: integrity restiction (hibernate_prb.fk_acd2dep) violated - primary key don't found

i've tried in test, persist new departmen entity no relationship proffesor , i've seen id of new section persisted entity has not valid value within transaction out of transaction id has right value. need right value within transaction.

can help me? give thanks in advance.

try

@onetomany(mappedby="department",cascade = cascadetype.persist) private set<proffesor> proffesors;

spring hibernate jpa

Comments

Popular posts from this blog

web services - java.lang.NoClassDefFoundError: Could not initialize class net.sf.cglib.proxy.Enhancer -

Accessing MATLAB's unicode strings from C -

javascript - mongodb won't find my schema method in nested container -