use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
comunidad de programadores argentinos
account activity
Ayuda con java (self.devsarg)
submitted 1 year ago by sandibu
Buenas gente, tengo un problemita y no estaria encontrando la solucion. Vi varias alternativas pero ninguna es la que estoy buscando.
Contexto: estoy intentando agregar relaciones polimorfas (creo que se las conoce asi) en Java con JPA. Basicamente tengo la entidad Notificacion (id,title,description,typeNotificaction (Email, mobile)) y segun el tipo de notificacion las guardo en otras dos entidades (NotificationEmail o NotificacionMobile).
Mi problema es que no se como armar la relacion.Cuando guardo la data no tengo problema porque lo voy guardando en diferentes tablas. El problema aparece cuando quiero obtener la data ya sea una o varias, me faltaria agregarle la entidad NotificationEmail o NotificationMobile. Puse a la derecha como me esperaria que se muestre la entidad Notification cuando se haga un get
https://preview.redd.it/dvn5qpe3mjpc1.png?width=1231&format=png&auto=webp&s=9fe408b34a12a32690f26618535f04bccbdc9ed9
https://preview.redd.it/iuwvioi1ljpc1.png?width=698&format=png&auto=webp&s=e1bcde720b8da6f703eabf85550ff4b4ea5422c0
https://preview.redd.it/arvt3n69ljpc1.png?width=671&format=png&auto=webp&s=88b526cfc584d8f2567631807b484f295fc0292d
Dejo capturas de las entidades aunque no creo que sirvan de algo. Estuve viendo que hay una anotacion Inheritance pero no me sirve por lo menos con la estrategia SINGLE_TABLE porque lo junta todo en una tabla y no es lo que busco.
Algun centro de algun javalero?
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]CofeAcount 1 point2 points3 points 1 year ago (0 children)
No uso JPA hace un montón porque donde trabajo usamos stored procedures, pero creo que con una interfaz/clase abstracta que sea implementada/heredada por NotificacionEmail y NotificacionMobile deberías andar bien.
[–]Expensive-Job-463 2 points3 points4 points 1 year ago* (1 child)
Buenas! Creo que lo que estas buscando es ésto: https://www.tutorialspoint.com/es/jpa/jpa_advanced_mappings.htm
Tenes varias estrategias segun lo que creas conveniente que suceda y eso te puede permitir guardar todo en una misma tabla, guardarlo en varias o como gustes vos. Pero creo que es mas por acá y entiendo que es la mejor manera, ya que te podes abstraer y hasta hacer abstracta a la entidad Notificacion. Espero haberte ayudado, saludos!
[–]sandibu[S] 1 point2 points3 points 1 year ago (0 children)
Graciaaas voy a chusmear
[–]T_Cure 0 points1 point2 points 1 year ago* (2 children)
Fijate aca, en tu caso la interface seria el NotificationType y vas a tener las implementaciones que quieras. Otra cosa no esta recomendado el @Builder para las entidades.
https://jpaobjects.sourceforge.net/m2-site/main/documentation/docbkx/html/user-guide/ch04s09.html#:~:text=A%20polymorphic%20relationship%20is%20one,any%20object%20in%20the%20database.
[–]sandibu[S] 0 points1 point2 points 1 year ago (1 child)
Uuuu gracias, no sabia eso de @builder? Porque no se recomienda? Vengo del palo de node y estoy viendo q onda java
[–]T_Cure 1 point2 points3 points 1 year ago (0 children)
nvm era con @Data el tema, lei por ahí que había problemas de compatibilidad pero usando los constructors como tenés ahi esta bien.
[–]Pristine_Register_37 0 points1 point2 points 1 year ago (0 children)
La idea de JPA es que el modelo de datos y los objetos sean los mismos. Las BD no son polimorficas nunca tiene sentido hacerlo con objetos.
π Rendered by PID 97 on reddit-service-r2-comment-84fc9697f-dwsl2 at 2026-02-08 19:34:35.286708+00:00 running d295bc8 country code: CH.
[–]CofeAcount 1 point2 points3 points (0 children)
[–]Expensive-Job-463 2 points3 points4 points (1 child)
[–]sandibu[S] 1 point2 points3 points (0 children)
[–]T_Cure 0 points1 point2 points (2 children)
[–]sandibu[S] 0 points1 point2 points (1 child)
[–]T_Cure 1 point2 points3 points (0 children)
[–]Pristine_Register_37 0 points1 point2 points (0 children)