ayuda sobre hibernate
que tal comunidad ando bien atorado con hibernate tengo una exception que no se que onda, al crear mis entities con netbeans, en mi base de datos tengo una llave primaria compuesta que a su vez una de de esas llaves es llave foranea y me sale este error
not mapped to a single property. help me please :(
- Inicie sesión o regístrese para enviar comentarios
las llaves primarios jamas
las llaves primarios jamas deben ser compuestas, utiliza solo una property para tu llave primaria y de preferencia que no sea ningun valor de la entindad en si.
Me cai que si pusieras codigo, nos seria mas fácil.
No te haría mal una leida a los lineamientos de publicacion
sobres
respuesta
gracias de todas formas ya solucione el asunto, utilice este ejemplo, quizas no me di entender.pero esto era lo que queria, pero me quede en duda acerca de tu comentario de que las primarias jamas deben ser compuestas, si pudieras darme un punto de vista al respecto, gracias.
les adjunto la pagina donde baje el ejemplo y es justo lo que estaba buscando. ahi mismo viene el zip para descargar los entities.
Llave primarias
Eso de "jamás deben ser compuestas" pues supongo que lo dicen porque Hibernate soporta mejor llaves primarias simples, numéricas, que se autoincrementen. Pero por supuesto hay casos en que es necesario manejar llaves primarias compuestas. Un ejemplo son las tablas intermedias para relaciones N-N, otro caso son bases de datos preexistentes a las que te vas a conectar ahora usando Hibernate.
Hibernate permite el uso de llaves primarias compuestas, pero es algo complicado, particularmente si quieres que se auto-generen.
Si, me refiero a que no solo
Si, me refiero a que no solo hibernate, si no para uno como programador es mucho más fácil manejar un identificador surrogate (no se como se tradusca) que un identificador natural. A grandes rasgos un surrogate es un identificador para la entidad u objeto no asignado por la aplicación y uno natural es manejado por la aplicación. Un identificador natural puede ser unico o compuesto, pero se debe tener en cuenta que este identificar debe ser inmutable.
Si yo necesito una llave doble para una entindad, generalmente tengo mi id surrogate, y un constraint unique doble con las dos columnas, esto no solo me da la seguridad de que mi registro será único, si no de poder actualizarlo sin muchas dificultades.
Sobres