Problem by inserting of entities
music Apr 23, 2007 3:49 AM
Hi,
I use JBoss Seam 1.2.1 GA, Jboss 4.0.5 GA and JSF for one project. I have made one new Session bean for inserting/deleting some data in/from database.
It's look something like this:
@Stateless @Name("initialize") public class InitializeData implements Initialize { @PersistenceContext private EntityManager em = null; public void insertData() { try { PriceCategory cat1 = new PriceCategory("Old", new BigDecimal(3.2)); PriceCategory cat2 = new PriceCategory("New", new BigDecimal(5.2)); em.persist(cat1); em.persist(cat2); em.flush(); } catch(Exception e) { e.printStackTrace(); } }
But when I call this method from JSF, I get always this exception by first em.persist()-call:
09:27:45,078 INFO [STDOUT] Hibernate: insert into PriceCategory (priceCategoryId, name, dailyFee, optLock) values (null, ?, ?, ?) 09:27:45,093 WARN [JDBCExceptionReporter] SQL Error: -104, SQLState: 23000 09:27:45,093 ERROR [JDBCExceptionReporter] Unique constraint violation: SYS_CT_61 in statement [insert into PriceCategory (priceCategoryId, name, dailyFee, optLock) values (null, ? , ?, ?)] 09:27:45,093 ERROR [STDERR] javax.persistence.EntityExistsException: org.hibernate.exception.ConstraintViolationException: could not insert: [model.PriceCategory] 09:27:45,093 ERROR [STDERR] at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:622) 09:27:45,093 ERROR [STDERR] at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:218)
I don't really understand what happend there. Perheps my entity bean PriceCategory:
@Entity @Table(name = "PriceCategory") @Name("pricecategory") public class PriceCategory implements Serializable { @Id @GeneratedValue(strategy=GenerationType.IDENTITY) @Column(name = "priceCategoryId") private Integer id; @Column(name = "name", nullable = false, length = 20, unique=true) private String name; @Column(name = "dailyFee", nullable = false, precision = 4, scale = 2) private BigDecimal dailyFee; @Version @Column(name = "optLock") private Integer version; ...
I am really stuck at this point and without data in database cann't do anything more.
Could anyone give me some hint for get over it?
Thanks a lot for every help!