hibernate - Not-updatable child entity -
i have such method:
@transactional public void add(user2 object) { session session = sessionfactoryutils.getsession(sessionfactory, false); session.save(object); string number = generatenumber(object.getperson().getid(), object.getperson().getfranchise().getid()); object.setlogin(number); object.getperson().setnumber(number); session.update(object); }
entity user2 contains entity person. see, first - adding new record database , want update sonme fields of user2 , person. problem user2 field updated (hql query generated user2 entity too). how can make update person entity too? thank you
@entity @table(name="users") public class user2 implements serializable { /** * */ private static final long serialversionuid = 1l; /** * */ @id @column(name = "id") @generatedvalue private long id; /** * */ @column(name = "login") private string login; /** * */ @column(name = "password") private string password; /** * */ @onetoone(cascade = cascadetype.all, targetentity = person2.class, orphanremoval = true) @joincolumn(name = "person_id") private person2 person; /** * */ public user2() { this.setid(0l); } /*getters ans setters*/ } @entity @table(name="persons") public class person2 implements serializable { /** * */ private static final long serialversionuid = 1l; /** * */ @id @column(name = "id") @generatedvalue private long id; /** * */ @column(name = "title", nullable = true) private string position; /** * */ @column(name = "firstname", nullable = true) private string firstname; /** * */ @column(name = "lastname", nullable = true) private string lastname; /** * */ @column(name = "birthdate", nullable = true) private string birthdate; /** * */ @column(name = "notes") private string notes; /** * */ public person2() { this.setid(0l); } /* getters ans setters */ }
why ding way.please try following:
@transactional public void add(user2 object) { session session = sessionfactoryutils.getsession(sessionfactory, false); string number = generatenumber(object.getperson().getid(), object.getperson().getfranchise().getid()); object.setlogin(number); object.getperson().setnumber(number); session.saveorupdate(object);
Comments
Post a Comment