[RESOLVIDO]Problema com Sequence no PostgreSQL

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>

    &lt;property name="hibernate.dialect"&gt;org.hibernate.dialect.PostgreSQLDialect&lt;/property&gt;

    &lt;property name="hibernate.c3p0.min_size"&gt;5&lt;/property&gt;  
    &lt;property name="hibernate.c3p0.max_size"&gt;100&lt;/property&gt;  
    &lt;property name="hibernate.c3p0.timeout"&gt;1800&lt;/property&gt;  
    &lt;property name="hibernate.c3p0.max_statements"&gt;50&lt;/property&gt;  
    &lt;property name="hibernate.c3p0.idle_test_period"&gt;3000&lt;/property&gt;  
    
    &lt;property name="hibernate.show_sql"&gt;true&lt;/property&gt;
    &lt;property name="format_sql"&gt;true&lt;/property&gt;[/code]

As outras propriedades estão no applicationContext.xml do spring.