Ae… ta meio cabeludo isso aki…
Já fiz consultas tranquilamente, retornou tudo ok. O problema é quando tento inserir registros… O log do hibernate imprime o insert no console, mas não o executa. Quando eu vou verificar no banco, o registro não está lá.
o código que eu executo está assim:
Session session = null;
try {
session = HibernateUtil.getSession();
HibernateUtil.beginTransaction();
session.save(mensagem);
session.flush();
HibernateUtil.commitTransaction();
} catch (HibernateException e) {
log.error("Erro ao cadastrar mensagem");
e.printStackTrace();
HibernateUtil.rollbackTransaction();
} finally {
HibernateUtil.closeSession();
}O insert é impresso ao passar pelo flush()
e não é retornado nenhum erro… nem passa pelo catch()…
alguém tem idéia do q pode ser? to sem alternativas já… tá foda até de googlar…
Sem o flush nem imprime o insert no console.
Eu coloquei ele exatamente na tentativa de fazer funcionar, e apesar de não ter conseguido, melhorou… pelo menos agora imprime a consulta na tela.
Vamos lá, se você estiver usando o mysql a chave primaria será auto-incremento
no seu VO @Id
private Integer codigo;
se você estiver usando o oracle por exemplo você coloca @javax.persistence.SequenceGenerator(name=“aliasnomedasequence”,sequenceName=“nomedasequence”,allocationSize=0)
public class VO
{
[quote=pablomaiden]no seu VO @Id
private Integer codigo;
se você estiver usando o oracle por exemplo você coloca @javax.persistence.SequenceGenerator(name=“aliasnomedasequence”,sequenceName=“nomedasequence”,allocationSize=0)
public class VO
{
isso tem que estar redondo.[/quote]
Queria que fosse assim tão simples… estou usando obrigatoriamente java 4… então annotations já era… de volta ao .hbm.xml…
e outra coisa… a chave é composta (estou usando uma classe pra representar o id composto… a pequena PK tem 4 colunas… não olha assim pra mim q eu não tenho culpa nenhuma)
Suponho que isso elimine a necessidade do generator
ps: só pra antecipar, não tem possibilidade nenhuma de eu usar uma versão posterior do java nem alterar o banco.