-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 
Author Message
 Post subject: problem with hibernate and spring
PostPosted: Thu Jan 12, 2012 7:26 am 
Newbie

Joined: Wed Aug 31, 2011 5:21 am
Posts: 2
Hi at all.
I'm making a project with hibernate and spring.
I've a little problem... Hibernate don't create the datatbase.. this is the error that junit give me

Code:
org.springframework.dao.InvalidDataAccessResourceUsageException: could not insert: [dto.Utente]; nested exception is org.hibernate.exception.SQLGrammarException: could not insert: [dto.Utente]
   at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:628)
   at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
   at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:411)
   at org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
   at org.springframework.orm.hibernate3.HibernateTemplate.save(HibernateTemplate.java:683)
   at dao.impl.UtenteDaoImpl.save(UtenteDaoImpl.java:17)
   at test.TestTest.testAccettazione(TestTest.java:53)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:597)
   at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
   at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
   at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
   at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
   at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
   at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
   at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
   at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
   at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
   at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
   at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)
   at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: org.hibernate.exception.SQLGrammarException: could not insert: [dto.Utente]
   at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
   at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
   at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:40)
   at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2108)
   at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2588)
   at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:48)
   at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:248)
   at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:290)
   at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:180)
   at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:108)
   at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:186)
   at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
   at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:175)
   at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
   at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
   at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:535)
   at org.hibernate.impl.SessionImpl.save(SessionImpl.java:523)
   at org.hibernate.impl.SessionImpl.save(SessionImpl.java:519)
   at org.springframework.orm.hibernate3.HibernateTemplate$12.doInHibernate(HibernateTemplate.java:686)
   at org.springframework.orm.hibernate3.HibernateTemplate$12.doInHibernate(HibernateTemplate.java:1)
   at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:406)
   ... 28 more
Caused by: java.sql.SQLException: user lacks privilege or object not found: UTENTE
   at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
   at org.hsqldb.jdbc.JDBCPreparedStatement.<init>(Unknown Source)
   at org.hsqldb.jdbc.JDBCConnection.prepareStatement(Unknown Source)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:597)
   at org.hibernate.util.GetGeneratedKeysHelper.prepareStatement(GetGeneratedKeysHelper.java:49)
   at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:487)
   at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:94)
   at org.hibernate.id.IdentityGenerator$GetGeneratedKeysDelegate.prepare(IdentityGenerator.java:69)
   at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:30)
   ... 46 more
Caused by: org.hsqldb.HsqlException: user lacks privilege or object not found: UTENTE
   at org.hsqldb.error.Error.error(Unknown Source)
   at org.hsqldb.SchemaManager.getTable(Unknown Source)
   at org.hsqldb.ParserDQL.readTableName(Unknown Source)
   at org.hsqldb.ParserDML.compileInsertStatement(Unknown Source)
   at org.hsqldb.ParserCommand.compilePart(Unknown Source)
   at org.hsqldb.ParserCommand.compileStatement(Unknown Source)
   at org.hsqldb.Session.compileStatement(Unknown Source)
   at org.hsqldb.StatementManager.compile(Unknown Source)
   at org.hsqldb.Session.execute(Unknown Source)
   ... 57 more



this is my UtenteDao class

Code:
public class UtenteDaoImpl extends HibernateDaoSupport implements UtenteDao{

   @Override
   @Transactional
   public void save(Utente utente) {
      // TODO Auto-generated method stub
      getHibernateTemplate().save(utente);
   }

   @Override
   @Transactional
   public List<Utente> getAllUtenti() {
      // TODO Auto-generated method stub
      return getHibernateTemplate().loadAll(Utente.class);
   }

   @Override
   @Transactional
   public void deleteUtente(Utente utente) {
      // TODO Auto-generated method stub
      getHibernateTemplate().delete(utente);
   }

   @Override
   @Transactional
   public void update(String codice, String nome, String cognome,
         String citta, String provincia, String cap, String telefono,
         String email) {
      // TODO Auto-generated method stub
      Utente u = findUtenteByCodice(codice);
      u.setNome(nome);
      u.setCognome(cognome);
      u.setCitta(citta);
      u.setProvincia(provincia);
      u.setCap(cap);
      u.setTelefono(telefono);
      u.seteMail(email);
      getHibernateTemplate().update(u);
   }
   
   @Override
   @Transactional
   public Utente findUtenteByCodice(String codice)
   {
      String query = "Select * from Utente where codice='"+codice+"'";
      return (Utente)getHibernateTemplate().find(query).get(0);
   }

}



This is my DTO
Code:


@Entity
@Table (name = "Utente")
public class Utente  extends LightEntity implements Serializable{

   public Utente()
   {
      
   }
   
   @Id
   @Column(name = "codice")
   @GeneratedValue(strategy = GenerationType.AUTO)   
   public String getCodice() {
      return codice;
   }
   public void setCodice(String codice) {
      this.codice = codice;
   }
   
   @Column(name = "nome")
   public String getNome() {
      return nome;
   }
   public void setNome(String nome) {
      this.nome = nome;
   }
   
   @Column(name = "cognome")
   public String getCognome() {
      return cognome;
   }
   public void setCognome(String cognome) {
      this.cognome = cognome;
   }
   
   @Column(name = "telefono")
   public String getTelefono() {
      return telefono;
   }
   public void setTelefono(String telefono) {
      this.telefono = telefono;
   }
   
   @Column(name = "email")
   public String geteMail() {
      return eMail;
   }
   public void seteMail(String eMail) {
      this.eMail = eMail;
   }
   
   @Column(name = "indirizzo")
   public String getIndirizzo() {
      return indirizzo;
   }
   public void setIndirizzo(String indirizzo) {
      this.indirizzo = indirizzo;
   }
   
   @Column(name = "cap")
   public String getCap() {
      return cap;
   }
   public void setCap(String cap) {
      this.cap = cap;
   
   }
   
   @Column(name = "citta")
   public String getCitta() {
      return citta;
   }
   public void setCitta(String citta) {
      this.citta = citta;
   }
   
   @Column(name = "provincia")
   public String getProvincia() {
      return provincia;
   }
   public void setProvincia(String provincia) {
      this.provincia = provincia;
   }


   private String codice;
   private String nome;
   private String cognome;
   private String telefono;
   private String eMail;
   private String indirizzo;
   private String cap;
   private String citta;
   private String provincia;
   
}


and this is my xml dispatcher config file for spring and hibernate

Code:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

<!--<bean id="viewResolver" class="org.springframework.web.servlet.view.
InternalResourceViewResolver" p:prefix="/WEB-INF/jsp/" p:suffix=".jsp" />
-->
<bean id="dataSource"
      class="org.springframework.jdbc.datasource.DriverManagerDataSource">
      <property name="driverClassName" value="org.hsqldb.jdbcDriver" />
      <property name="url" value="jdbc:hsqldb:file:/home/andrea/db/data;shutdown=false" />
      <property name="username" value="sa" />
      <property name="password" value="" />
   </bean>
   
<bean id="sessionFactory"
      class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
      <property name="dataSource" ref="dataSource" />
      <property name="annotatedClasses">
      
<list>
<value>dto.Acquisto</value>
<value>dto.Categoria</value>
<value>dto.Foto</value>
<value>dto.Prodotto</value>
<value>dto.Utente</value>
<value>dto.Valutazione</value>

</list>

</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect"> org.hibernate.dialect.HSQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">create</prop>
</props>
</property>
</bean>

<bean id="acquistoDao" class="dao.impl.AcquistoDaoImpl">
      <property name="sessionFactory">
         <ref bean="sessionFactory" />
      </property>
   </bean>

<bean id="categoriaDao" class="dao.impl.CategoriaDaoImpl">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>

<bean id="fotoDao" class="dao.impl.FotoDaoImpl">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>

<bean id="prodottoDao" class="dao.impl.ProdottoDaoImpl">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>

<bean id="utenteDao" class="dao.impl.UtenteDaoImpl">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>

<bean id="valutazioneDao" class="dao.impl.ValutazioneDaoImpl">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>

<!--<bean name="/user/*.htm" class="com.vaannila.web.UserController" >
<property name="userDAO" ref="myUserDAO" />
</bean>-->

</beans>


any idea? Why hibernate did that?
Thank's to all for the help


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.