Bom dia amigos, estou com um problema na inclusão de alguns registros. Vou explicar meu ambiente:
Tenho uma aplicação web que que conecta a um banco MySQL utilizando Hibernate. Este banco provê dados para outras aplicações que rodam offline utilizando JavaDB Embedded (Derby). Quando estas aplicações offline rodam, elas pegam os registros novos e atualizam suas bases locais. Só que ao inserir o registro na base atual, ele não está pegando o mesmo ID da base online, ele joga um ID qqr e fica furado as FK.
O que tem de diferente neste projeto (não sei se isto interfere em algo) mas eu tenho um projeto que na verdade é uma biblioteca aonde tem todas as classes dao e as vo (value objects). Esta biblioteca é utilizada por ambos projetos. Vou colocar abaixo os fontes envolvidos:
AbstractDAO
public class AbstractDAO<T> implements IAbstractDAO<T> {
protected Class<T> classVO = null;
protected HibernateTemplate template;
public AbstractDAO() {
this.classVO = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
}
@Override
public T get(Long id) {
return this.template.get(classVO, id);
}
@Override
public T add(T entity) {
this.template.save(entity);
return entity;
}
@Override
public T update(T entity) {
this.template.merge(entity);
return entity;
}
@Override
public void delete(T entity) {
this.template.delete(entity);
}
@Override
public void delete(Integer id) {
T entity = this.template.load(classVO, id);
this.delete(entity);
}
@Override
@SuppressWarnings("unchecked")
public List<T> list() {
return this.template.find(String.format("from %s", this.classVO.getName()));
}
}
Uma classe DAO para exemplo (PaisDAO)
[code]
@Repository
public class PaisDAO extends AbstractDAO {
@Autowired
public void setSessionFactory(SessionFactory sessionFactory) {
this.template = new HibernateTemplate(sessionFactory);
}
}[/code]
Uma classe VO de exemplo
@Entity
@Table(name="pais")
public class PaisVO implements Serializable {
private static final long serialVersionUID = -1730794847340576406L;
@Id @GeneratedValue
private Long id;
@Column(length=60,nullable=false)
private String nome;
//Getters & Setters
}
Como posso fazer para resolver este problema?