Ainda nao rolou pois eu quero usar a mesma classe interna… usando o bag nao vira pois eh como usar uma collection. Estou lendo que nem louco a documentação mas ela nao tem exemplos bons para o que eu procuro… Caso alguem tenha uma interpretação melhor que a minha
thadeurc
Andei pesquisando no site do hibernate e nao achei nenum exemplo como este que necessito fazer. Uma solução (porca) seria dizer que uma tarefa tem um relacionamento one-to-many com tarefa mas não gostaria de fazer desse modo.
Se alguem consegui ou consegue mapear um one-to-one da mesma classe help me please
packageaplicacao;importjava.io.Serializable;publicclassFuncimplementsSerializable{privateinthashCode=Integer.MIN_VALUE;// primary keyprivatejava.lang.LongoidFunc;// fieldsprivatejava.lang.StringdesFunc;// many to oneprivateaplicacao.FuncoidFuncPai;// collectionsprivatejava.util.Setset;publicFunc(){}publicjava.lang.LonggetOidFunc(){returnoidFunc;}publicvoidsetOidFunc(java.lang.Long_oidFunc){this.oidFunc=_oidFunc;this.hashCode=Integer.MIN_VALUE;}publicjava.lang.StringgetDesFunc(){returndesFunc;}publicvoidsetDesFunc(java.lang.String_desFunc){this.desFunc=_desFunc;}publicaplicacao.FuncgetOidFuncPai(){returnthis.oidFuncPai;}publicvoidsetOidFuncPai(aplicacao.Func_oidFuncPai){this.oidFuncPai=_oidFuncPai;}publicjava.util.SetgetSet(){returnthis.set;}publicvoidsetSet(java.util.Set_set){this.set=_set;}publicvoidaddToSet(Objectobj){if(null==this.set)this.set=newjava.util.HashSet();this.set.add(obj);}publicbooleanequals(Objectobj){if(null==obj)returnfalse;if(!(objinstanceofaplicacao.Func))returnfalse;else{aplicacao.FuncmObj=(aplicacao.Func)obj;if(null==this.getOidFunc()||null==mObj.getOidFunc())returnfalse;elsereturn(this.getOidFunc().equals(mObj.getOidFunc()));}}publicinthashCode(){if(Integer.MIN_VALUE==this.hashCode){if(null==this.getOidFunc())returnsuper.hashCode();else{StringhashStr=this.getClass().getName()+":"+this.getOidFunc().hashCode();this.hashCode=hashStr.hashCode();}}returnthis.hashCode;}}
legionarioba
Query:
// Utilizando Named QueryQueryq=s.getNamedQuery("obterPorPkFunc");q.setLong("oidFunc",1);Funcf=(Func)(q.list().get(0));s.close();System.out.println("############################");System.out.println("Func:"+f.getDesFunc());System.out.println("############################");Iteratori=f.getSet().iterator();while(i.hasNext()){Funcf2=(Func)i.next();System.out.println("############################");System.out.println("Subalternos: "+f2.getDesFunc());System.out.println("############################");}
Vê se funciona ai e da um feedback ok?
[]'s
thadeurc
valeu cara… este lance da named quer eu nao sabia que dava para usar no hibernate.
Vou testar sim mas este tipo de mapping eu sei fazer eu estava procurando um de one-to-one onde a classe possui um atributo dela propria…
Mas fico grato do mesmo modo.
Assim que eu testar eu dou o feed back certinho…
[]´s
legionarioba
Pode ser um pouco mais claro??
thadeurc
Posso sim.
Eu gostaria de mapear uma classe semelhante como a que vem abaixo:
publicclassTarefa{privateLongid;privateStringdescricao;privateTarefatarefaFilha;//gets and sets}
Ou seja, uma tarefa tem ( composição ) uma tarefa filha, ou uma que ela dependa.
Ficou mais claro??
Eu tentei fazer o mapeamento one-to-one colocando o campo id (que eh um<id…> ) como chave mas não deu certo.
francofabio
conseguiu resolver, seu prob? se conseguiu por favor post a solução pq estou com um prob. semelhante tb…muito obrigado!!!