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
