Estou usando hibernate3 com anotacoes e tem um workaround legal para usar enumeracoes: usar um UserType que na verdade grava um Varchar ou int com o .name() ou .ordinal() da constante.
Isso ta funcionando diretinho, mas se eu quero guardar um Set ele pede para que minhaEnum seja @Entity. Alguem que ja criou outros UserTypes sabe como fazer para trabalhar com coleções deles?
bem simples e direto… cria um campo int… tem uma versao varchar pra nao ficar dependente de .ordinal() que muda conforme a ordem da declaracao.
Hmmm, não era isso que eu queria saber, Paulo (inclusive, temos um EnumType no genesis, s]o que pro Hibernate 2). Eu queria entender como você quer ter uma Collection que não é na realidade uma entidade. Por isso, queria entender como isso vai ser persistido no banco (por exemplo, numa tabela à parte, assim e assim…), pra ver se realmente o que você explicou é o que você precisa.
Paulo_Silveira
entendi!
queria que ele criasse uma tabela associativa… um ID e VARCHAR mais foreign pra outra tabela…
posso fazer um workaround que seria um wrapper da enum neh?
Pois é, só que isso não seria um workaround e sim o jeito “correto” de fazer.
Na verdade, se você quisesse usar uma chave composta (o que não é recomendado), seu wrapper poderia simplesmente ser a enum e a FK para a entidade principal. Note que o que você sugeriu agora reflete seu modelo relacional. O fato é que o Hibernate não tem como relacionar sua entidade pai com a Collection sem que haja uma chave em algum lugar.