Monday 15 July 2013

java - javax.ejb.EJBException: javax.persistence.PersistenceException: org.hibernate.exception.ConstraintViolationException: could not execute statement -



java - javax.ejb.EJBException: javax.persistence.PersistenceException: org.hibernate.exception.ConstraintViolationException: could not execute statement -

i not understand i'm doing wrong

caused by: com.mysql.jdbc.exceptions.jdbc4.mysqlintegrityconstraintviolationexception: column 'user_id' cannot null

user , document id auto increment ... @generatedvalue(strategy = generationtype.identity)

public class user { @id @generatedvalue(strategy = generationtype.identity) private long id; .. }

... or ...

public class user { @id @generatedvalue(strategy = generationtype.auto) private long id; .. }

don't work

@stateless @transactionattribute(transactionattributetype.not_supported) public class documentservice implements serializable { @inject @loggedin private user currentuser; @transactionattribute(transactionattributetype.requires_new) public document add(document document) throws businessexception { if (document.istransient()) { system.out.println("dao " + currentuser); // print user right document.setuser(currentuser); } system.out.println("dao " + d.getuser()); // print user right homecoming dao.save(document); } } @transactionattribute(transactionattributetype.not_supported) public class dao<t extends baseentity> implements serializable { private static final long serialversionuid = 1l; private final class<t> entityclass; private entitymanager entitymanager; public dao(class<t> entityclass, entitymanager entitymanager) { this.entityclass = entityclass; this.entitymanager = entitymanager; } @transactionattribute(transactionattributetype.mandatory) public t save(t entity) { document d = (document) entity; system.out.println("dao " + d.getuser()); // print user right system.out.println("contains " + entitymanager.contains(entity)); // homecoming false if (entity.isnew()) { entitymanager.persist(entity); // persist error user_id null entitymanager.flush(); } else { entitymanager.merge(entity); } homecoming entity; } } public class document { @id @generatedvalue(strategy=generationtype.identity) private long id; @notnull @manytoone private user user; } relationship unidirectional document user

stack.. 20:30:02,917 warn [org.hibernate.engine.jdbc.spi.sqlexceptionhelper] (default task-6) sql error: 1048, sqlstate: 23000 20:30:02,917 error [org.hibernate.engine.jdbc.spi.sqlexceptionhelper] (default task-6) column 'user_id' cannot null 20:30:02,930 error [org.jboss.as.ejb3.invocation] (default task-6) jbas014134: ejb invocation failed on component documentservice method public com.taskboard.model.document com.taskboard.boundary.documentservice.save(com.taskboard.model.document) throws com.taskboard.core.exception.businessexception: javax.ejb.ejbexception: javax.persistence.persistenceexception: org.hibernate.exception.constraintviolationexception: not execute statement

java jpa persistence cdi hibernate-entitymanager

No comments:

Post a Comment