Ha bom, se os arquivos estão separados, entao de fato nao precisa do cifrao ($) lá no remoteClass .. dai é só apontar o alias diretamente.
Achei q vc estivesse usando inner class mesmo, como no exemplo q mostri com chaves compostas. Mas o feddback entao deu oq? Continua chegando null ??? []s Em 13 de setembro de 2010 22:28, RafaelViana <[email protected]> escreveu: > Opa... Valeu isso vai ajudar bastante com certeza. Não vou conseguir > dar um feedback hoje, porque tenho que terminar um trabalho pra > faculdade. Mas amanhã vou tentar fazer esses testes com certeza. > > @Mario só fiquei em dúvida com duas coisas. > > Por exemplo, você usa uma classe estática dentro da entidade. Então, > essa classe só é usada dentro dessa entidade. Eu crio as classes em > arquivos separados, portanto poderia aproveitar um @Embeddable em > outras entidades. Nesse caso, como ficaria o mapeamento da entidade no > Flex? Ou seja, um @Embeddable (inner class) sendo utilizado em mais de > uma classe. (ou isso já é pedir demais para o ActionScript? rsrs) > > E como você usou uma classe estática: TesteCompositeId$PK, algo como > PK que está dentro de TesteCompositeId. > E se a classe está em arquivo separada, essa anotação é a mesma? > (porque se o PK estivesse em um arquivo separado esse não seria o > caminho correto até ele). > > Isso já resolve a GRANDE MAIORIA das situações, portanto se for > necessário uso classes estáticas no Java :D pelo menos já deu uma > grande luz para resolver o problema. > > On 13 set, 20:52, Mário Júnior <[email protected]> wrote: > > Opa... olha só... tive a idéia de pesquisar no Cache do Google, mas pelo > > jeito os robots do google já re-indexaram o meu blog, e daí perdi o cache > do > > Blog antigo.... > > > > mas.... > > > > Alguem manteve o meu artigo como "histórico" (q legal) e acabei achando o > > link do artigo original aqui: > http://webcache.googleusercontent.com/search?q=cache:l37roYngft8J:www... > > > > Espero q consigam ver. > > > > []s > > > > Em 13 de setembro de 2010 20:51, Mário Júnior <[email protected] > >escreveu: > > > > > > > > > > > > > Acho q isso está relacionado as Internal Classes (classes dento de > outra > > > classe). > > > Eu tinha um post sobre isso no meu antigo blog, mas q se perdeu qnd > mudei > > > de server .. agora pensa na preguiça q dá escrever isso tudo dnovo... > heheh > > > =P > > > > > Primeiro pensamento que temos q ter em mente: *AS3 não permite uso de > > > internal class*. > > > Opa opa.. não joguem pedras... tá bom... dá pra simular isso mas daí a > > > classe 'filha' (a 'interna'no caso) tem q ficar fora do escopo do > package e > > > acaba ficando acessível apenas para objetos internos da classe 'mae', > um > > > clássico exemplo disso é o SingletonEnforcer muito comum em exemplos de > como > > > implementar o pattern Singleton em AS3. Mas, convenhamos que isso não é > a > > > mesma coisa q dá pra fazer em java. > > > > > Sendo assim, se a @Embeddable for uma classe "interna" de outra classe, > vc > > > terá q mapear ela de forma diferente no AS3, seguindo os passos abaixo: > > > > > - Como em AS3 nao permite classes internas, logo em AS3 vc tem q ter > DUAS > > > classes (arquivos .as) separados. > > > - Na classes "Embeddable" vc precisa mapear usando metadata > > > [RemoteClass(alias="classe.Mae$Filha")] > > > - Na classe "Mae" (a q contém o atributo "embutido") basta declarar o > > > atributo com tipo correto, naturalmente. > > > > > PS: Ressalto q os termos "mae" e "filha" nesse caso nao tem nada a > haver > > > com herança, é q não consegui pensar em outro nome para representar > isso, > > > mas a "Mae" seria a classe "principal" e "Filha" uma classe "interna", > > > capicci? > > > > > *Perceberam o $ (cifrão) ali no nome no meio do [RemoteClass]?* > > > Isso é pq o javac ao compilar uma classe "interna", irá gerar um > arquivo > > > .class com o nomeDaClassePrincipal*$*NomeDaClasseFilha. Para terem > certeza > > > disso, vcs podem conferir na pasta /bin dos seus projetos (ou em > > > Web-INF/classes no caso de projetos web). > > > > > Entao, agora vem a pegadinha do malandro: como o BlazeDS sabe que um > tipo > > > específico de classe é uma classe interna? > > > A resposta é simples: Qnd vc manda um objeto para o servidor, ele vai > como > > > um RemotingMessage onde contém várias informações importantes para o > > > BlazeDS, e uma delas é o metadataInformation (ou coisa assim, nao > lembro de > > > cabeça agora) mas é um atributo que contem a string "alias" declarado > no > > > metadata [RemoteClass]. Quando o BlazeDS recebe um > > > "pacote.classes.Mae$Filha" ele irá conseguir (via > Reflection/ClassLoader) > > > instanciar um objeto do tipo declarado, mesmo sendo uma classe > "interna'. A > > > *única* obrigatoriedade requerida pelo BlazeDS é q a classe interna > > > precisa ser *public*. > > > > > Enfim... no meu artigo eu falava sobre serialização de "Chaves > Compostas > > > (PK) com JPA/Hibernate usando Flex"... seria bom ressuscitar esse > artigo, já > > > até tinha me rendido um emprego na época :) > > > > > Enfim.. acho q vai ser isso.. dá um feedback pra gente @RafaelViana. > > > > > []s > > > > > Em 13 de setembro de 2010 20:13, Rodrigo da Rosa Elesbão < > > > [email protected]> escreveu: > > > > > E voce repetiu isso no flex? Ou seja. Criou as classes representando os > > >> tipos no flex para os vos? faz assim pra ficar mais facil de te > ajudar. Joga > > >> o objeto que retorna pro flex pra gente dar uma olhada. > > > > >> Em 13/09/2010 19:27, "Fredy Gadotti" <[email protected]>escreveu: > > > > >> Puts, bem legal isso ai =] > > >> Não conhecia. > > > > >> Bom, não posso te ajudar, ai vai ter que perguntar para alguém que > manje > > >> de JPA mesmo e trabalhe com Flex! > > > > >> 2010/9/13 RafaelViana <[email protected]> > > > > >> > SimSim :D > > > > >> > O problema é que assim: Se eu tivesse essa abordagem: > > > > >> > public class Empresa { > > >> ... > > > > >> -- > > >> Você recebeu esta mensagem porque está inscrito na lista "flexdev" > > >> Para enviar uma mensagem, env... > > > > >> -- > > >> Você recebeu esta mensagem porque está inscrito na lista "flexdev" > > >> Para enviar uma mensagem, envie um e-mail para > [email protected] > > >> Para sair da lista, envie um email em branco para > > >> [email protected] > > >> Mais opções estão disponíveis emhttp:// > groups.google.com/group/flexdev > > > > > -- > > > Mario Junior > > >http://blog.mariojunior.com/ > > > @mariojunior > > > > -- > > Mario Juniorhttp://blog.mariojunior.com/ > > @mariojunior > > -- > Você recebeu esta mensagem porque está inscrito na lista "flexdev" > Para enviar uma mensagem, envie um e-mail para [email protected] > Para sair da lista, envie um email em branco para > [email protected] > Mais opções estão disponíveis em http://groups.google.com/group/flexdev > -- Mario Junior http://blog.mariojunior.com/ @mariojunior -- Você recebeu esta mensagem porque está inscrito na lista "flexdev" Para enviar uma mensagem, envie um e-mail para [email protected] Para sair da lista, envie um email em branco para [email protected] Mais opções estão disponíveis em http://groups.google.com/group/flexdev
