Persistence.xml ERRO [No persistence unit with name]

205 views
Skip to first unread message

francisco...@gmail.com

unread,
Feb 11, 2009, 9:38:51 PM2/11/09
to javasf: JavaServer Faces International Group
Seguinte estou estudando o livro spring in Action fiz os teste usando
HibernateTemplate e funcionou tudo ok. Ai fui tentar fazer uns
exemplos usando JpaTemplate, ai começou meu problema.

Minha configuração esta assim


web.xml

<!-- Spring ApplicationContext.xml-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springContext*.xml</param-value>
</context-param>
<listener>
<listener-
class>org.springframework.web.context.ContextLoaderListener</listener-
class>
</listener>


===============================================================
ApplicationContext.xml


O nome deste arquivo é springContextDB.xml

<?xml version="1.0" encoding="UTF-8"?>
<!--
- Application context definition for JPetStore's business layer.
- Contains bean references to the transaction manager and to the
DAOs in
- dataAccessContext-local/jta.xml (see web.xml's
"contextConfigLocation").
-->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:jee="http://www.springframework.org/schema/jee"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/jee
http://www.springframework.org/schema/jee/spring-jee-2.5.xsd">



<jee:jndi-lookup id="dataSource" jndi-name="java:comp/env/jdbc/banco"
resource-ref="true"/>

<bean id="jpaTemplate"
class="org.springframework.orm.jpa.JpaTemplate">
<property name="entityManagerFactory" ref="entityManagerFactory"/
>
</bean>
<bean id="entityManagerFactory"

class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="jpaVendorAdapter">
<bean
class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="showSql" value="true"></property>
<property name="database" value="HSQL"></property>
</bean>
</property>
<property name="loadTimeWeaver">
<bean
class="org.springframework.instrument.classloading.SimpleLoadTimeWeaver"></
bean>
</property>
<property name="persistenceUnitName" value="persistenceUnit"></
property>
<!-- property name="persistenceXmlLocation" value="classpath:META-
INF/persistence*.xml"/-->


</bean>
<!-- DI - Injeção de Dependência -->
<bean id="Cliente" class="br.com.frafael.model.Cliente"/>
<bean id="ClienteControler"
class="br.com.frafael.controller.ControllerCliente">
<property name="cli" ref="Cliente"/>
</bean>
<bean id="DAOGenerico"
class="br.com.frafael.impl.GenericDAOImpl" abstract="true">
<property name="entityManagerFactory" ref="entityManagerFactory"></
property>
</bean>

</beans>

continua em outro arquivo que se chama springContextCadastro.xml



<?xml version="1.0" encoding="UTF-8"?>
<!--
- Application context definition for JPetStore's business layer.
- Contains bean references to the transaction manager and to the
DAOs in
- dataAccessContext-local/jta.xml (see web.xml's
"contextConfigLocation").
-->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:jee="http://www.springframework.org/schema/jee"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/jee
http://www.springframework.org/schema/jee/spring-jee-2.5.xsd">

<import resource="springContextDB.xml"/>
<bean id="ClienteDAO" class="br.com.frafael.dao.ClienteDAO"
parent="DAOGenerico"/>

</beans>


============================================================================

Na pasta META-INF tenho meu arquivo persistence.xml


<?xml version="1.0" encoding="UTF-8"?>
<persistence>
<persistence-unit name="persistenceUnit">

<provider>org.hibernate.ejb.HibernatePersistence</
provider>
<class>br.com.frafael.model.Cliente</class>
</persistence-unit>

</persistence>



========================================================================

Meu DAO Generico que estou fazendo os testes


package br.com.frafael.impl;
import java.lang.reflect.ParameterizedType;
import java.util.List;
import org.springframework.orm.jpa.support.JpaDaoSupport;

import br.com.frafael.interfaces.InterfaceGenericDAO;

public abstract class GenericDAOImp<T> extends JpaDaoSupport
implements InterfaceGenericDAO<T>{

@SuppressWarnings("unchecked")
private Class persistentClass;

@SuppressWarnings("unchecked")
public Class getPersistentClass() {
return persistentClass;
}
@SuppressWarnings("unchecked")
public void setPersistentClass(Class persistentClass) {
this.persistentClass = persistentClass;
}
@SuppressWarnings("unchecked")
public GenericDAOImp(){
this.persistentClass = (Class)((ParameterizedType)getClass
().getGenericSuperclass()).getActualTypeArguments()[0];
}

public void create(T obj){
getJpaTemplate().persist(obj);
}
public void saveorupdate(T obj){
getJpaTemplate().refresh(obj);
}
public void update(T obj){
getJpaTemplate().refresh(obj);

}

public void delete(T obj){
getJpaTemplate().remove(obj);
}
@SuppressWarnings("unchecked")
public List<T> searchList(){
return (List<T>)getJpaTemplate().find("from Cliente order by nome");
}

@SuppressWarnings("unchecked")
public T SearchEntity(int id){
return (T)getJpaTemplate().getReference(this.persistentClass, id);
}
@SuppressWarnings("unchecked")
public List<T> SearchParams(Object[] names,Object[] values,Object[]
ordem){
StringBuffer sql = new StringBuffer("");
sql.append("FROM "+getPersistentClass().getSimpleName()+" ");
//Adicionar filtros
for (int i = 0;i<names.length;i++){
sql.append(names[i]);
}
//Adicionar ordem by
for (int i = 0;i<ordem.length;i++){
sql.append(ordem[i]);
}
return (List<T>)getJpaTemplate().find(sql.toString(),values);
}
}



Mas quando mando executar o projeto surge a seguinte mensagem de erro:


org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'jpaTemplate' defined in file [C:\java\dsv
\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\pagina
\WEB-INF\classes\springContextDB.xml]: Cannot resolve reference to
bean 'entityManagerFactory' while setting bean property
'entityManagerFactory'; nested exception is
org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'entityManagerFactory' defined in file [C:\java
\dsv\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
\pagina\WEB-INF\classes\springContextDB.xml]: Invocation of init
method failed; nested exception is java.lang.IllegalArgumentException:
No persistence unit with name 'persistenceUnit' found



Estou vendo no final da mensagem diz:

No persistence unit with name 'persistenceUnit' found

parece que não esta encontrando este arquivo de configuração, tentei
fazer na declaração do meu entityManageFactory o seguinte:



<bean id="entityManagerFactory"

class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="jpaVendorAdapter">
<bean
class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="showSql" value="true"></property>
<property name="database" value="HSQL"></property>
</bean>
</property>
<property name="loadTimeWeaver">
<bean
class="org.springframework.instrument.classloading.SimpleLoadTimeWeaver"></
bean>
</property>
<property name="persistenceUnitName" value="persistenceUnit"></
property>
<property name="persistenceXmlLocation" value="classpath:META-INF/
persistence*.xml"/>
</bean>


ou seja

<property name="persistenceUnitName" value="persistenceUnit"></
property>
<property name="persistenceXmlLocation" value="classpath:META-INF/
persistence*.xml"/>


mas mesmo assim não encontra.


alguem ja passou por isso e poderia me ajudar?


Grato...

Francisco Rafael Gomes Silva

unread,
Feb 11, 2009, 10:02:36 PM2/11/09
to javasf: JavaServer Faces International Group
Galera criei uma pasta META-INF dentro de src e a mensagem mudou agora:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jpaTemplate' defined in file [C:\java\dsv\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\pagina\WEB-INF\classes\springContextDB.xml]: Cannot resolve reference to bean 'entityManagerFactory' while setting bean property 'entityManagerFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in file [C:\java\dsv\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\pagina\WEB-INF\classes\springContextDB.xml]: Invocation of init method failed; nested exception is java.lang.AbstractMethodError: org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(Ljavax/persistence/spi/PersistenceUnitInfo;Ljava/util/Map;)Ljavax/persistence/EntityManagerFactory;


Será que é as bibliotecas em conflito????

Glauco P. Gomes

unread,
Feb 12, 2009, 6:05:18 AM2/12/09
to jav...@googlegroups.com
A excecao é a seguinte: "Invocation of init method failed; nested exception is java.lang.AbstractMethodError", verifica se vc nao esta declarando nenhum bean com uma classe abstrata, todas tem que ser concretas.

Glauco P. Gomes

Francisco Rafael Gomes Silva escreveu:

Francisco Rafael Gomes Silva

unread,
Feb 12, 2009, 6:04:53 AM2/12/09
to jav...@googlegroups.com
Estou sim, vou testar aqui...

2009/2/12 Glauco P. Gomes <glauco...@yahoo.com.br>

Francisco Rafael Gomes Silva

unread,
Feb 12, 2009, 6:08:42 AM2/12/09
to jav...@googlegroups.com
Coloquei a classe errada na declaração, muito obrigado....

2009/2/12 Francisco Rafael Gomes Silva <francisco...@gmail.com>

Francisco Rafael Gomes Silva

unread,
Feb 12, 2009, 10:43:07 AM2/12/09
to jav...@googlegroups.com
É glauco no almoço na empresa abri o projeto no meu note e testei...

Mas o erro continua olha só minhas classes:



Minha Classe abstract:



package br.com.frafael.impl;
import java.lang.reflect.ParameterizedType;
import java.util.List;
import org.springframework.orm.jpa.support.JpaDaoSupport;

import br.com.frafael.interfaces.InterfaceGenericDAO;

public abstract class GenericDAOImp<T> extends JpaDaoSupport implements InterfaceGenericDAO<T>{
   
    @SuppressWarnings("unchecked")
    private Class persistentClass;
   
   
    @SuppressWarnings("unchecked")
    public Class getPersistentClass() {
        return persistentClass;
    }
    @SuppressWarnings("unchecked")
    public void setPersistentClass(Class persistentClass) {
        this.persistentClass = persistentClass;
    }
    @SuppressWarnings("unchecked")
    public  GenericDAOImp(){
        this.persistentClass = (Class)((ParameterizedType)getClass().getGenericSuperclass()).getActualTypeArguments()[0];
Minha Classe que herda dela :


package br.com.frafael.dao;

import br.com.frafael.impl.GenericDAOImp;
import br.com.frafael.model.Cliente;

public class ClienteDAO extends GenericDAOImp<Cliente>{
   
}



No meus arquivo de configuração esta assim agora:

Este arquivo eu declaro conexão e configuração:
              </bean>
          </property>
          <property name="loadTimeWeaver">
              <bean class="org.springframework.instrument.classloading.SimpleLoadTimeWeaver"></bean>
          </property>
          <property name="persistenceUnitName" value="persistenceUnit"></property>
          <property name="persistenceXmlLocation" value="classpath:META-INF/persistence.xml"/>
         
                   
    </bean>
</beans>


Neste outro declaro meus beans:



<?xml version="1.0" encoding="UTF-8"?>
<!--
  - Application context definition for JPetStore's business layer.
  - Contains bean references to the transaction manager and to the DAOs in
  - dataAccessContext-local/jta.xml (see web.xml's "contextConfigLocation").
  -->
<beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:tx="http://www.springframework.org/schema/tx"
        xmlns:jee="http://www.springframework.org/schema/jee"
        xsi:schemaLocation="
            http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
            http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
            http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd">
   
    <import resource="springContextDB.xml"/>
    <!-- DI - Injeção de Dependência -->
    <bean id="Cliente" class="br.com.frafael.model.Cliente"/>
    <bean id="ClienteControler" class="br.com.frafael.controller.ControllerCliente">
        <property name="cli" ref="Cliente"/>   
    </bean>
   
    <bean id="ClienteDAO" class="br.com.frafael.dao.ClienteDAO">
        <property name="entityManagerFactory" ref="entityManagerFactory"></property>
    </bean>
                       
</beans>

Não estou mais declarando a classe GenericDAOImp como antes o erro é este:


SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jpaTemplate' defined in file [C:\java\dsv\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\pagina\WEB-INF\classes\springContextDB.xml]: Cannot resolve reference to bean 'entityManagerFactory' while setting bean property 'entityManagerFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in file [C:\java\dsv\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\pagina\WEB-INF\classes\springContextDB.xml]: Invocation of init method failed; nested exception is java.lang.AbstractMethodError: org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(Ljavax/persistence/spi/PersistenceUnitInfo;Ljava/util/Map;)Ljavax/persistence/EntityManagerFactory;
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:275)
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:104)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1245)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1010)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:472)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380)
    at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255)
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3843)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4342)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
    at org.apache.catalina.core.StandardService.start(StandardService.java:516)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in file [C:\java\dsv\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\pagina\WEB-INF\classes\springContextDB.xml]: Invocation of init method failed; nested exception is java.lang.AbstractMethodError: org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(Ljavax/persistence/spi/PersistenceUnitInfo;Ljava/util/Map;)Ljavax/persistence/EntityManagerFactory;
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1338)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:269)
    ... 33 more




Se alguem tver mais alguma sugestão?

Grato...

Bruno maomeH

unread,
Feb 12, 2009, 12:06:18 PM2/12/09
to jav...@googlegroups.com
<jee:jndi-lookup id="dataSource" jndi-name="java:comp/env/jdbc/
banco" resource-ref="true"/>

    <bean id="jpaTemplate"
          class="org.springframework.orm.jpa.JpaTemplate">
          <property name="entityManagerFactory" ref="entityManagerFactory"/>         
    </bean>
    <bean id="entityManagerFactory"
          class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
          <property name="dataSource" ref="dataSource"></property>
          <property name="jpaVendorAdapter">
              <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
              </bean>
          </property>
          <property name="loadTimeWeaver">
              <bean class="org.springframework.instrument.classloading.SimpleLoadTimeWeaver"></bean>
          </property>
          <property name="persistenceUnitName" value="persistenceUnit"></property>
          <property name="persistenceXmlLocation" value="classpath:META-INF/persistence.xml"/>
         
                   
    </bean>
</beans>

você declarou esse dataSource?
--
   C. SOARES - Bruno,
   C. COMPUTAÇÃO - Unifor,
   C. MAGALHÃES - Desenvolvedor.

Francisco Rafael Gomes Silva

unread,
Feb 12, 2009, 12:40:47 PM2/12/09
to jav...@googlegroups.com
Sim aqui


<jee:jndi-lookup id="dataSource" jndi-name="java:comp/env/jdbc/banco resource-ref="true"/>

esta usando conexão jndi pelo tomcat a configuração dele esta no arquivo context.xml dentro de web-inf\classes

Esta assim:


<?xml version="1.0" encoding="UTF-8"?>
<Context path="/pagina" docBase="pagina"
        debug="5" reloadable="true" crossContext="true" >

 
 <Resource name="jdbc/banco" auth="Container" type="javax.sql.DataSource"
               maxActive="100" maxIdle="30" maxWait="10000"
               username="postgres" password="postgres" driverClassName="org.postgresql.Driver"
               show_sql="true"
               url="jdbc:postgresql://127.0.0.1:5432/teste?autoReconnect=true"/>
</Context>             

Glauco P. Gomes

unread,
Feb 12, 2009, 1:46:28 PM2/12/09
to jav...@googlegroups.com
Qual a versao do Hibernate vc esta utilizando, vi um erro parecido no forum do Spring e o cara resolveu atualizando o Hibernate p/ o 3.2.6.

Da uma olhada aqui:
http://forum.springframework.org/showthread.php?t=59944

Francisco Rafael Gomes Silva

unread,
Feb 12, 2009, 1:55:05 PM2/12/09
to jav...@googlegroups.com
Cara para falar a verdade um amigo disse que poderia ser erro de bibliotecas imcompativeis entrei no site do hibernate hoje e atualizei todos para hibernate-annotations-3.4.0.GA, hibernate-entitymanager-3.4.0.GA ou seja as ultimas versões do site...

George Queiroz

unread,
Feb 12, 2009, 1:55:51 PM2/12/09
to jav...@googlegroups.com
esse treco num ta faltando "" ???


<jee:jndi-lookup id="dataSource" jndi-name="java:comp/env/jdbc/
banco resource-ref="true"/>


Francisco Rafael Gomes Silva

unread,
Feb 12, 2009, 1:57:53 PM2/12/09
to jav...@googlegroups.com
<jee:jndi-lookup id="dataSource" jndi-name="java:comp/env/jdbc/
banco" resource-ref="true"/>

Faltando " " não....



2009/2/12 George Queiroz <george...@gmail.com>

Glauco P. Gomes

unread,
Feb 12, 2009, 2:14:35 PM2/12/09
to jav...@googlegroups.com
Mas e o Hibernate em si? Qual é a versão?

O cara la atualizou para hibernate-3.2.6.ga

Francisco Rafael Gomes Silva

unread,
Feb 12, 2009, 2:36:54 PM2/12/09
to jav...@googlegroups.com
hibernate 3

Francisco Rafael Gomes Silva

unread,
Feb 12, 2009, 2:39:42 PM2/12/09
to jav...@googlegroups.com
Tem como me passar este link?

Glauco P. Gomes

unread,
Feb 12, 2009, 3:35:23 PM2/12/09
to jav...@googlegroups.com
Tenta com a versao 3.2.6.ga

O link p/ a discussao no forum do spring é o seguinte:

Francisco Rafael Gomes Silva

unread,
Feb 12, 2009, 9:21:37 PM2/12/09
to jav...@googlegroups.com
Cara resolvi meu problema aqui, adicionei somente no persitence.xml

o seguinte:

 <persistence xmlns="http://java.sun.com/xml/ns/persistence
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance
     xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd
     version="1.0">  


antes estava assim:

 <persistence xmlns="http://java.sun.com/xml/ns/persistence"  version="1.0">  

depois que alterei isso funcionou:

Mas estou com o seguinte problema quando chamo o metodo:


    public List<T> searchList(){
        return (List<T>)getJpaTemplate().find("from Cliente order by nome");
    }


Funciona blz e traz os registros na tela, mas quando eu tento gravar algo, No console do eclipse aparece o seguinte:

13/02/2009 00:19:46 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Deleted entity synthetic identifier rollback: disabled
13/02/2009 00:19:46 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Default entity-mode: pojo
13/02/2009 00:19:46 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Named query checking : enabled
13/02/2009 00:19:46 org.hibernate.impl.SessionFactoryImpl <init>
INFO: building session factory
13/02/2009 00:19:46 org.hibernate.impl.SessionFactoryObjectFactory addInstance
INFO: Not binding factory to JNDI, no JNDI name configured
Hibernate: select nextval ('seq_cliente')

Não entendi aquela parte em negrito acima, procurei na net tentei várias coisa e nada, se alguem que ja passou por isso, me de uma ajuda ai....

Muito obrigado a todos que sempre me ajudão aqui...vlw..

Francisco Rafael Gomes Silva

unread,
Feb 12, 2009, 9:27:18 PM2/12/09
to jav...@googlegroups.com
Esqueci de comentar que a sequencia do banco é sempre atualizada cada vez que tento gravar, mas o registro não é salvo no banco...

o metodo que esta gravando esta assim:


    public void create(T obj){                       
        getJpaTemplate().persist(obj);
    }


Só para comentar glauco quando eu coloquei no ApplicationContext um bean do tipo abstrato não teria problema pois usei o atributo abstract:

    <bean id="GenericDAOImp" class="br.com.frafael.impl.GenericDAOImp" abstract="true">

        <property name="entityManagerFactory" ref="entityManagerFactory"></property>
    </bean>   

isso diz ao spring que esta é uma classe abstrata e não deve ser instanciada, ela serve para que nas classe que eu use herança eu não precise declarar a DI em todas como fiz nesta classe:

<bean id="ClienteDAO" class="br.com.frafael.dao.ClienteDAO" parent="GenericDAOImp">       
 </bean>

aqui o atributo parent diz ao spring para usar a DI do seu antecessor e isso funciona certinho pois com HibernateTemplate usei e funciona certinho, e esta na documentação do spring tambem...

Se souber a causa da mensagem me da um toque ai, a mensagem que estou me referindo esta no log anterior...

INFO: Deleted entity synthetic identifier rollback: disabled

vlw galera...
   


2009/2/13 Francisco Rafael Gomes Silva <francisco...@gmail.com>

Glauco P. Gomes

unread,
Feb 13, 2009, 6:49:55 AM2/13/09
to jav...@googlegroups.com
Nao sei o que é que ta errado, mas na configuracao que vc postou eu nao vi nenhum TransactionManager, deve ser por causa disso.

Quanto a o abstract="true", realmente passou batido, eu nao tinha visto.

Francisco Rafael Gomes Silva

unread,
Feb 13, 2009, 7:02:13 AM2/13/09
to jav...@googlegroups.com
Tranquilo cara, mas coloquei i TransactionManager tambem, o estranho que ele nunca mostra o comando insert e quando chama getJpaTemplate.getEntituManager()  este cara esta vindo null é assim mesmo? Para mim ele tinha que vim com a instancia que foi definida por DI nele...



2009/2/13 Glauco P. Gomes <glauco...@yahoo.com.br>

Glauco P. Gomes

unread,
Feb 13, 2009, 7:12:04 AM2/13/09
to jav...@googlegroups.com
Eu nao sei dizer, nunca utilizei JPA puro, aqui utilizo a abstracao para o Hibernate, pois utilizo muito criteria.

Como esta o controle de transacoes? Com anotacoes? No XML?

Francisco Rafael Gomes Silva

unread,
Feb 13, 2009, 7:14:06 AM2/13/09
to jav...@googlegroups.com
Não entendi a pergunta, ainda não coloquei nenhum controle de transação ou seja iria usar anotações @Transaction nos metodos que eu quisesse que tivesse transações mas ainda não tem nenhum....posso mandar o projeto para vc ver assim acho que é mais faci, eu mando um arquivo compactado com o projeto...

Glauco P. Gomes

unread,
Feb 13, 2009, 7:58:43 AM2/13/09
to jav...@googlegroups.com
Pode mandar, mas o problema deve ser esse mesmo, quando vc nao declara nenhuma transacao o Spring nao inicia nenhuma transacao e se nao houver nenhuma o banco de dados "reclama", pelo menos se ele for transacional.

Lembre tb de fazer @Transactional(readOnly = false), para as operacoes de insercao, alteracao e remocao de dados, nos de consulta nao precisa colocar nada.

Manda o projeto diretamente p/ meu e-mail, nao mande p/ a lista, p/ nao incomodar ninguem.

Francisco Rafael Gomes Silva

unread,
Feb 13, 2009, 8:06:46 AM2/13/09
to jav...@googlegroups.com
OK muito orbigado só dá uma olhada quando tiver um tempo, vlw cara...No almoço eu mando...

Francisco Rafael Gomes Silva

unread,
Feb 13, 2009, 1:29:51 PM2/13/09
to jav...@googlegroups.com
Galuco estou mandando meu projeto para vc via yousenfit quando chegar somente clicar no link para baixar..muito obrigado...

Francisco Rafael Gomes Silva

unread,
Feb 13, 2009, 1:30:42 PM2/13/09
to jav...@googlegroups.com
Só para lembrar ele fica disponivel para download somente durante 7 dias...

Glauco P. Gomes

unread,
Feb 13, 2009, 1:49:04 PM2/13/09
to jav...@googlegroups.com
Nao se preocupe com isso, com certeza antes disso dou uma olhada.

Talvez hoje a noite.

Glauco P. Gomes

unread,
Feb 18, 2009, 9:08:33 AM2/18/09
to jav...@googlegroups.com
Dei uma ohada no projeto que vc mandou, realmente esta faltando o controle de transacoes, por isso vc nao esta conseguindo modificar os dados no banco de dados.

Sobre a utilizacao do spring, vc nao esta fazendo da forma mais produtiva, te aconselho a dar uma olhada no seguinte artigo:
http://cagataycivici.wordpress.com/2008/03/04/annotation-driven-jsf-spring-jpa/

No final do artigo tem um link p/ download dos fontes.

Qualquer duvida pode postar.

Glauco P. Gomes

Glauco P. Gomes escreveu:

Francisco Rafael Gomes Silva

unread,
Feb 18, 2009, 12:59:12 PM2/18/09
to jav...@googlegroups.com
Valeu glauco, muito obrigado...Mas aquele dia que me mandou, este link dei um lida e entendi sim, ja arrumei aqui e esta funcionando...vlw

2009/2/18 Glauco P. Gomes <glauco...@yahoo.com.br>
Reply all
Reply to author
Forward
0 new messages