Desculpem pelo tamanho do post, é quis tentar passar todos os detalhes do problema.
Pessoal estou com uma dificuldade para configurar o spring com o JPA. Configurei os xml’s e quando vou inserir um objeto ele da o erro “null”(java null point exception). Porém eu preencho o objeto, estou achando que o JPA não esta buscando as configurações no XML do spring, sem o spring o JPA funciona blz.
Vou postar os códigos.
persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0"
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">
<persistence-unit name="XXXX" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>modelo.Bairro</class>
<properties>
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.connection.username" value="root" />
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
<property name="hibernate.connection.password" value="root" />
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/XXXXX" />
<property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider" />
</properties>
</persistence-unit>
</persistence>
applicationContext.xml
<?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:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<bean
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="XXXX" />
</bean>
<bean
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceUnitName" value="XXXX" />
</bean>
<bean class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<context:component-scan base-package="br.com.XXXX" />
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<mvc:annotation-driven />
<tx:annotation-driven />
<context:annotation-config />
</beans>
O DAO
package br.com.XXXX.dao;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import modelo.Bairro;
@Repository("bairroDao")
public class BairroDao {
public BairroDao() {
}
@PersistenceContext
protected EntityManager entityManager;
public void setEntityManager(EntityManager entityManager) {
this.entityManager = entityManager;
}
public Bairro find(int idBairro) {
return entityManager.find(Bairro.class, idBairro);
}
@SuppressWarnings("unchecked")
public List<Bairro> findAll() {
return entityManager.createNamedQuery("SELECT B FROM BAIRRO B").getResultList();
}
@Transactional
public void persist(Bairro bairro) {
try {
entityManager.persist(bairro);
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
@Transactional
public void merge(Bairro bairro) {
entityManager.merge(bairro);
}
@Transactional
public void remove(Bairro bairro) {
entityManager.remove(bairro);
}
}
O modelo
package modelo;
import java.io.Serializable;
import javax.persistence.*;
/**
* The persistent class for the tab_bairro database table.
*
*/
@Entity
@Table(name="tab_bairro")
public class Bairro implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="COD_BAIRRO", unique=true, nullable=false)
private int codBairro;
@Column(name="NOM_BAIRRO", nullable=false, length=60)
private String nomBairro;
public Bairro() {
}
public int getCodBairro() {
return this.codBairro;
}
public void setCodBairro(int codBairro) {
this.codBairro = codBairro;
}
public String getNomBairro() {
return this.nomBairro;
}
public void setNomBairro(String nomBairro) {
this.nomBairro = nomBairro;
}
}
E a classe que estou fazendo os teste
import br.com.XXXXX.dao.BairroDao;
import modelo.Bairro;
public class Teste {
/**
* Classe para testar o projeto
* @param args
*/
public static void main(String[] args) {
Bairro bairro = new Bairro();
bairro.setNomBairro("TESTE");
BairroDao bairroDao = new BairroDao();
bairroDao.persist(bairro);
}
}
Por enquanto estou fazendo só testes com o console, depois vou usar o JSF 2 com primefaces.
Alguém pode me dizer o que estou fazendo de errado?