Bom dia a todos os participates que se interessarem pelo post!
O problema consiste em gerar um Id unico para todo o sistema de forma mais eficiente.
como gerar!
Desenvolvi uma classe abstract que todos os outros objetos extendem, ok funcionado perfeitamente.
package sys;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.TableGenerator;
@Entity
@Inheritance(strategy=InheritanceType.JOINED)
public abstract class SysObject implements Serializable
{
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.TABLE, generator="Generator" )
@TableGenerator(name="Generator", table="GeneratorTable", pkColumnName="PK", valueColumnName="AID",initialValue=1, allocationSize=1)
@Column(name="id")
private Long id;
... get e setters
}
funciona tudo de forma perfeita!
agora vamos aos detalhes, tenho a tabela
GeneratorTable, tenho a tabela SysObject e todas as tabelas que extenderem esta minha class.
correto, isso é fato.
por exemplo um objeto que vai exteder esta tabela,
@Entity
@Table(name = "activeall")
public class SysActiveAll extends SysObject implements Serializable
{
private String description;
... get and setters ....
}
Teria + esssa tabela na base SysActiveAll,
e assim para todos os objetos que tenho, porém cada dados que insiro na base ele insere um registro na tabela SysObject
se tento excluir essas linhas inuteis e deixar só a ultima pois é que é usada para gerador de sequencia ele não deixa por que é FK nos objetos que extenderão esse Objeto.
Assim vou ter uma tabela com quantas linhas de dados tem o sistema, com muito pouca utilidade.
Dicas de como tratar essa situação são bem vindas obrigado!
Atualmente uso o Hibernate 3.5 e Msql…
Até mais