المشاركات

عرض الرسائل ذات التصنيف jpa

El problema del AUTO_INCREMENT con el API de Persistencia

Al crear una clase entidad utilizando el API de persistencia (JPA) con Netbeans, el IDE creará por omisión los ID con las siguientes anotaciones @Id @GeneratedValue(strategy = GenerationType.AUTO) Con ello creará una tabla llamada SEQUENCE donde almacenará el valor del último ID utilizado. Es lo más estándar posible, ya que sabemos que existen RDBMS que no tienen la capacidad de generar un ID autoincrementado (como el Firebird, que necesita de un generator). Pero ¿si uso MySQL, Apache Derby (o un RDBMS que pueda permitir valores de ID autoincrementales)? Pues, si revisamos la documentación de Java http://java.sun.com/javaee/5/docs/api/javax/persistence/GenerationType.html#SEQUENCE dice textualmente " Indicates that the persistence provider must assign primary keys for the entity using database sequence column." entonces, la anotación que necesitamos es @GeneratedValue(strategy = GenerationType.SEQUENCE) Para salir de las dudas, al ejecutar nuestra aplicación, veremos

Persistencia de Java: Clave Primaria compleja con objeto

Como se vió, con el API de Persistencia de Java (Java Persistence API - JPA) se puede mapear todas las tablas de una base de datos como entidades para ser manipuladas desde objetos java. Ahora, ¿qué pasa con entidades débiles? Una entidad débil es aquella que depende su existencia de otra entidad. Por ejemplo, el detalle de una factura no puede existir sin una factura. Si se traslada este concepto a una base de datos, entonces, la clave primaria del detalle de factura será: la clave primaria de la factura a quien pertenece, y el número de orden que se muestra en la lista. Mapear la entidad FACTURA es simple: @Entity public class Factura implements Serializable { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name="ID_FACTURA") private Long id; La entidad DETALLE_FACTURA tiene la clave primaria compuesta por dos campos: ID_FACTURA y NRO_ORDEN. En java, toda la clave primara es un objeto con el mismo nombre de la clase primaria más el sufijo "PK". Pero ad

API de Persistencia en NetBeans 5.5

صورة
El artículo que traduje " Usando el API de persistencia en aplicaciones de escritorio (Introducción) " ahora pasará a la práctica usando NetBeans 5.5 Pues comenzamos por crear un nuevo proyecto llamado Persistence . Luego, crearemos la unidad de persistencia entrando a New | File dentro de la categoría Persistence. Definiremos el nombre de la unidad de persistencia (por omisión usaremos el nombre propuesto: PersistencePU). Recordemos que es una buena práctica utilizar el mismo nombre de la base de datos, aunque no necesariamente tengan que ser los nombres. Para la conexión de base de datos, crearemos uno nuevo: Podemos usar cualquier base de datos. Naturalmente debemos contar con el driver para el JDBC. Yo utilizaré el Firebird, por tanto los valores de la conexión a la base de datos son como sigue: Ahora vemos que creó el archivo persistence.xml dentro de META-INF, además ya tiene los valores de la plantilla como se mencionó en el artículo: Ahora, entraremos a New | File

Usando el API de persistencia en aplicaciones de escritorio (Introducción)

صورة
(Traducción no oficial de Using the Persistence API in Desktop Applications ) La especificación JSR220 define los EJB 3.0. Uno de los primeros objetivos es la simplicidad en la creación, manejo y almacenamiento de beans de entidad. Trabajando hacia la meta, Sun Microsystems y la colaboración de la comunidad de desarrolladores crearon un nuevo API que te permite usar los antiguos objetos de java (o POJOs) como entidades persistentes. El API de persistencia Java te facilita en el uso de POJOs como beans de entidad y reduce significativamente la necesidad de descriptores de despliegues complciados y beans ayudatnes extras. Adicionalmente, puedes usar siempre el API en aplicaciones de escritorio. Puedes describir muchas razones por la que deberías usar el nuevo API de persistencia, pero aquí hay algunas: No tienes que crear complejos objetos de accesos a datos (DAO). El API te ayuda manejar las transacciones. Escribes código basado en estándares que interactuan con la base de datos relacio