Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

465
Visualizações
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?

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

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>
over 4 years ago · Santiago Trujillo Relatório

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");

}

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda