Criei um protótipo simulando esse exemplo do CPF e Pessoa e funcionou :S O Flex recebe tudo certinho, assim como também manda tudo certinho...
Como fica em classe separada a declaração do alias fica igual. Devo ter cometido algum equivoco no exemplo que testei, e como não havia feito nenhum teste com persistência utilizando essa técnica achei que pudesse ser um problema do Flex. Agradeço pela ajuda pessoal. On 14 set, 13:47, Mário Júnior <[email protected]> wrote: > 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 emhttp://groups.google.com/group/flexdev > > -- > 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
