objects example elementcollection java hibernate spring list set

java - example - ¿Hibernación de muchas a muchas relaciones o conjunto de listas?



hibernate set (2)

¿Qué tal el requisito de singularidad de Set? ¿Esto no obliga a Hibernate a recuperar todos los objetos cada vez que se agrega uno a la colección para asegurarse de que uno recién agregado sea único? Una lista no tendría esta limitación.

Tengo una relación de muchos a muchos en mi Java beans. Cuando uso List para definir mis variables como:

@Entity @Table(name="ScD") public class Group extends Nameable { @ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE}, fetch = FetchType.EAGER) @JoinColumn(name="b_fk") private List<R> r; //or private Set<R> r;

Me sale ese error

org.springframework.beans.factory.BeanCreationException: Error creating bean with name ''org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor#0'' ...

Cuando uso Set todo parece funcionar bien.

Quiero preguntar que al usar muchas o muchas relaciones, ¿cuál de ellas usar para la List o Set concepto lógico (debido a que la lista puede tener duplicados y establecidos, pero qué pasa con el rendimiento y otros problemas)?


Desde la perspectiva de bases de datos relacionales este es un conjunto. Las bases de datos no conservan el orden y el uso de una List tiene sentido, el orden en ellas no se especifica (a menos que se utilicen las denominadas colecciones indexadas ).

Usar un Set también tiene grandes implicaciones de rendimiento. Cuando se usa List , Hibernate usa la colección PersistentBag debajo, que tiene algunas características terribles. Es decir: si agrega una nueva relación, primero eliminará todas las existentes y luego las volverá a insertar + la nueva. Con Set solo inserta el nuevo disco.

En tercer lugar, no puede tener varias List en una entidad, ya que obtendrá infame al mismo tiempo que no puede obtener la excepción de múltiples bolsas .

Ver también: