Olá pessoal, estou tentando persistir objetos no banco. Quando faço o SAVE + Commit os dados aparecem no banco, mas se em seguida eu fizer chamar o método Listar(), não retorna nada e quando vou ver não tem mais nenhum dado no banco.
Segue o codigo da classe Cliente:
import java.util.LinkedList;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
@Entity
@Table(name="Cliente")
public class Cliente {
@Id
@Column(name="cpfCnpj")
private String cpfCnpj;
@Column(name="owners", nullable=true)
private String owners;
@Column(name="nomeRazao", nullable=true)
private String nomeRazao;
@Column(name="servPrestado", nullable=true)
private String servPrestado;
public Cliente() {
}
public Cliente(String cpfCnpj, String owners, String nomeRazao,
String servPrestado) {
super();
this.cpfCnpj = cpfCnpj;
this.owners = owners;
this.nomeRazao = nomeRazao;
this.servPrestado = servPrestado;
}
public final String getCpfCnpj() {
return cpfCnpj;
}
public final String getOwners() {
return owners;
}
public final void setOwners(String owners) {
this.owners = owners;
}
public final String getNomeRazao() {
return nomeRazao;
}
public final void setNomeRazao(String nomeRazao) {
this.nomeRazao = nomeRazao;
}
public final String getServPrestado() {
return servPrestado;
}
public final void setServPrestado(String servPrestado) {
this.servPrestado = servPrestado;
}
public final void setCpfCnpj(String cpfCnpj) {
this.cpfCnpj = cpfCnpj;
}
}
Segue o código do meu DAO:
public void saveCliente(String cpfCnpj, String nomeRazao, String owners,
String servPrestado) {
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction transaction = null;
try {
transaction = session.beginTransaction();
Cliente cliente = new Cliente();
cliente.setCpfCnpj(cpfCnpj);
cliente.setNomeRazao(nomeRazao);
cliente.setOwners(owners);
cliente.setServPrestado(servPrestado);
session.save(cliente);
transaction.commit();
} catch (HibernateException e) {
transaction.rollback();
e.printStackTrace();
} finally {
session.close();
}
}
Agora o código do meu HibernateUtil:
public class HibernateUtil {
private static String DB_DIALECT = "org.hibernate.dialect.MySQLDialect";
private static String DB_DRIVER_CLASS = "com.mysql.jdbc.Driver";
private static String DB_URL = "jdbc:mysql://localhost/sisdecon";
private static String DB_USERNAME = "root";
private static String DB_PASSWORD = "123";
private static String DB_SHOSQL = "true";
private final static SessionFactory sessionFactory;
static {
try {
sessionFactory = new AnnotationConfiguration()
.configure()
.addPackage("br.com.novaideia.sisdecon.model")
// the fully qualified
// package name
.addAnnotatedClass(Cliente.class)
.setProperty("hibernate.dialect", DB_DIALECT)
.setProperty("hibernate.connection.driver_class", DB_DRIVER_CLASS)
.setProperty("hibernate.connection.url", DB_URL)
.setProperty("hibernate.connection.username", DB_USERNAME)
.setProperty("hibernate.connection.password", DB_PASSWORD)
.setProperty("show_sql", DB_SHOSQL)
.buildSessionFactory();
} catch (Throwable ex) {
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
Quando adiciono um objeto e vou fazer um delete aparece a seguinte msg: java.lang.NullPointerException. É algum problema o metodo saveCliente()? Como resolvo isso?
Agradeço a ajuda de todos.