Olá amigos, tenho uma classe que está toda mapeada, inclusive com o SequenceGenerator e tals.
Tenho a sequence que o hibernate cria pra mim quando sobe o servidor no banco.
MAS…
Ao tentar salvar um usuário, mostra:
Hibernate:
select
nextval ('SEQ_USUARIO')
Mas não salva nada, nem mostra no LOG algum tipo de insert. Já a sequence é incrementada em um normalmente.
O mapeamento:
@Id
@SequenceGenerator(name = "SEQ_USUARIO", sequenceName = "SEQ_USUARIO", allocationSize = 1)
@GeneratedValue(generator = "SEQ_USUARIO")
@Column(name = "ID_USUARIO" ,insertable = true, updatable = false, nullable = false)
private Long id;
[quote=darksteel3000]Olá amigos, tenho uma classe que está toda mapeada, inclusive com o SequenceGenerator e tals.
Tenho a sequence que o hibernate cria pra mim quando sobe o servidor no banco.
MAS…
Ao tentar salvar um usuário, mostra:
Hibernate:
select
nextval ('SEQ_USUARIO')
Mas não salva nada, nem mostra no LOG algum tipo de insert. Já a sequence é incrementada em um normalmente.
O mapeamento:
@Id
@SequenceGenerator(name = "SEQ_USUARIO", sequenceName = "SEQ_USUARIO", allocationSize = 1)
@GeneratedValue(generator = "SEQ_USUARIO")
@Column(name = "ID_USUARIO" ,insertable = true, updatable = false, nullable = false)
private Long id;[/quote]
Mostre todo o código envolvido com o salvamento do objeto para que possamos analisar. Às cegas acho que a transação não está sendo finalizada, mas mostre o código.
Olha ai amigão:
[code]@Repository
public class UsuarioDAOImpl implements UsuarioDAO, Serializable{
private static Log LOG = LogFactory.getLog(UsuarioDAOImpl.class);
private final SessionFactory factory;
@Autowired
public UsuarioDAOImpl(final SessionFactory factory) {
this.factory = factory;
}
@Transactional
public Long save(Usuario usuario) {
try{
return (Long) factory.getCurrentSession().save(usuario);
}catch(Exception e){
e.printStackTrace();
LOG.error(e.getMessage());
return null;
}
}
[/code]
Hibernate.cfg.xml
[code] <property name=“hibernate.hbm2ddl.auto”>update</property>
<property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
<property name="hibernate.c3p0.min_size">5</property>
<property name="hibernate.c3p0.max_size">100</property>
<property name="hibernate.c3p0.timeout">1800</property>
<property name="hibernate.c3p0.max_statements">50</property>
<property name="hibernate.c3p0.idle_test_period">3000</property>
<property name="hibernate.show_sql">true</property>
<property name="format_sql">true</property>[/code]
As outras propriedades estão no applicationContext.xml do spring.