java - implementations - Diferencia entre la entidad JPA y la entidad Hibernate
jpa vs jdbc (3)
Cuando anoto una clase con @Entity e intento resolver las dependencias, puedo elegir el paquete entre dos paquetes diferentes, javax.persistence.Entity y org.hibernate.annotations.Entity
El paquete javax es la anotación de entidad de JPA, pero ¿por qué hay una anotación de entidad hibernada y la diferencia tiene con la anotación de JPA? ¿Es solo una extensión para permitir que se definan más atributos?
@ org.hibernate.annotations utilizado en su proyecto, si supone que desea utilizar la plantilla JDBC o ibatis, necesitamos cambiar el código. si usamos javax.persistence no hay necesidad de cambiar el código. Esta es la principal diferencia entre org.hibernate.annotations y javax persistence
No estoy seguro de las diferencias, pero estoy seguro de que si tienes los frascos de Hibernate en tu classpath, estás usando HFP de Jiber. Hibernate proporciona una implementación de JPA. Aunque está utilizando el paquete javax.persistence, está utilizando HFP de Jiber.
La diferencia podría ser solo en el nombramiento. Pueden proporcionar las mismas clases tanto en el espacio del paquete Hibernate como en el espacio del paquete javax.
org.hibernate.annotations.Entity
tiene algunos atributos adicionales que javax.persistence.Entity
no ha sido estandarizado. Las funciones adicionales solo funcionarán si se usa la configuración de AnnotationConfiguration
de hibernate directamente o si el proveedor de JPA es hibernación.
de las preguntas frecuentes : editar: nuevo enlace la pregunta específica : editar: nuevo enlace la respuesta :
Yo uso @ org.hibernate.annotations.Entity y obtengo una excepción de entidad desconocida
Siempre importa @ javax.persistence.Entity
@ org.hibernate.annotations.Entity completa @ javax.persistence.Entity pero no es un reemplazo
Por ejemplo, hay un atributo llamado optimisticLock
, que le dice a hibernate si debe usar la columna de la versión estándar o para comparar todas las columnas al actualizar. Este comportamiento no está en la especificación de JPA, por lo que para configurarlo, debe usar la extensión específica de hibernación que se encuentra en su propia anotación.
Me gusta esto:
@Entity
@org.hibernate.annotations.Entity(optimisticLock=OptimisticLockType.ALL)
public class MyEntity implements Serializable {
...
}