• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
    • Questions
    • Teachers
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

350
Views
el método save no puede guardar el objeto usando Hibernate + Spring

Mi capa Dao tiene un método de guardado como:

 public void savePerson(PersonBean personBean) { Session currentSession; try { currentSession = sessionFactory.getCurrentSession(); } catch (HibernateException e) { currentSession = sessionFactory.openSession(); System.out.println("Opened Session"); } currentSession.merge(personBean); System.out.println("Data Saved"); }

Y applicationContext.xml se define como:

 <bean id="oracleDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName"><value>oracle.jdbc.driver.OracleDriver</value> </property> <property name="url" value="jdbc:oracle:thin:@localhost:1521:{mylocalInstance}" /> <property name="username"> <value>PersonDataBase</value> </property> <property name="password"> <value>person</value> </property> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> <property name="dataSource" ref="oracleDataSource"/> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.format_sql">true</prop> <prop key="hibernate.hbm2ddl.auto">update</prop> </props> </property> <property name="mappingLocations" value="PersonBean.hbm.xml" /> </bean> <bean id="testTransactional" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"/> </bean> <!--<tx:annotation-driven transaction-manager="testTransactional"/>--> <bean id="personDao" class="com.dao.PersonDaoImpl"> <property name="sessionFactory" ref="sessionFactory"/> </bean> <bean id="personService" class="com.service.PersonServiceImpl"> <property name="personDao" ref="personDao"/> </bean>

Puede crear las tablas pero los datos no se guardan, ya que tengo que mostrar el sql, este es el sql generado al intentar guardar:

 INFO: Using DataSource [org.springframework.jdbc.datasource.DriverManagerDataSource@68be8808] of Hibernate SessionFactory for HibernateTransactionManager Opened Session Hibernate: select max(PERSON_ID) from PERSON_BEAN Data Saved

¿Por qué se genera una consulta de selección cuando intento guardarla?

almost 3 years ago · Santiago Trujillo
2 answers
Answer question

0

También debe confirmar su transacción.

Prueba esto:

 public void savePerson(PersonBean personBean) { Session currentSession; try { currentSession = sessionFactory.getCurrentSession(); } catch (HibernateException e) { currentSession = sessionFactory.openSession(); System.out.println("Opened Session"); } currentSession.beginTransaction(); currentSession.merge(personBean); currentSession.getTransaction().commit() System.out.println("Data Saved"); }

EDITAR

También puede establecer la propiedad hibernate.connection.autocommit en verdadero en la configuración de Hibernate si no desea manejar las transacciones manualmente.

 <property name="hibernate.connection.autocommit">true</property>
almost 3 years ago · Santiago Trujillo Report

0

Pruebe currentSession.save(personBean) y si configuró correctamente Spring, entonces no necesita

beginTransaction() Spring manejará la transacción.

public void savePerson(PersonBean personBean) { Session currentSession;

 try { currentSession = sessionFactory.getCurrentSession(); } catch (HibernateException e) { currentSession = sessionFactory.openSession(); System.out.println("Opened Session"); } currentSession.beginTransaction(); currentSession.save(personBean); currentSession.getTransaction().commit() System.out.println("Data Saved");

}

almost 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error