I got some problem when I am trying to override INSERT, and UPDATE operations in Hibernate. My delete functions works fine, and everything works when i´m not override with my stored procedure, and I have no idea why. When I am trying to make an INSERT, everything seems to be fine but no data is being insert and no excpetion throws.
When I am trying to make an UPDATE following excpetion throws:
Could not synchronize database state with session
org.hibernate.exception.GenericJDBCException: could not update: [labb6Hibernate.bil#18]
Here is my hbm.xml file:
<hibernate-mapping> <class catalog="Cars" name="labb6Hibernate.bil" table="Bil"> <id name="idNum" type="java.lang.Integer"> <column name="idNum"/> <generator class="identity"/> </id> <property name="marke" type="string"> <column length="10" name="Marke" not-null="true"/> </property> <property name="modell" type="string"> <column length="10" name="Modell" not-null="true"/> </property> <property name="arsmodell" type="string"> <column length="4" name="Arsmodell" not-null="true"/> </property> <sql-insert callable="true"> { call insertCars(?,?,?) } </sql-insert> <sql-update callable="true"> { call updateCars(?,?,?) </sql-update> <sql-delete callable="true"> { call deleteCars(?) } </sql-delete> </class>
Here is my UPDATE code:
Session session = MyHibernateUtil.getSessionFactory().openSession(); session.beginTransaction(); int s = Integer.parseInt(idTxt.getText()); bil Bil = (bil) session.get(bil.class, s); Bil.setIdNum(s); Bil.setMarke(markeTxt.getText()); Bil.setModell(modellTxt.getText()); Bil.setArsmodell(arsmodellTxt.getText()); session.update(Bil); session.getTransaction().commit(); session.close();
Here is my INSERT code:
Session session = MyHibernateUtil.getSessionFactory().openSession(); session.beginTransaction(); bil Bil = new bil(); Bil.setMarke(markeTxt.getText()); Bil.setModell(modellTxt.getText()); Bil.setArsmodell(arsmodellTxt.getText()); session.save(Bil); session.getTransaction().commit(); session.close();
Does anyone have an idea what is wrong in my code?