2015-07-01 1 views
0

Я получаю «не может одновременно извлекать несколько пакетов» для вложенной коллекции. Вот как выглядит определение графа сущности и сущности. версия Hibernate: 4.3.7 весна-данных JPA: 1.8.1 'NamedEntityGraph: Hibernate throwing не может одновременно извлекать несколько исключений пакетов для вложенной коллекции

@Entity 
@Table(name = "ORGANISATION_GROUP") 
@Where(clause = "IS_DELETED <> 1") 
@NamedEntityGraphs(value = { @NamedEntityGraph(name = "onlyOrganisations", attributeNodes = { @NamedAttributeNode(value = "organisations", subgraph = "lightOrganisation") }, 
     subgraphs = { @NamedSubgraph(name = "lightOrganisation", attributeNodes = { @NamedAttributeNode(value = "locations") }) }) }) 
public class OrganisationGroup implements Serializable{ 

    private static final long serialVersionUID = 1L; 

    @Id 
    private Long id; 

    @ManyToMany() 
    @AuditJoinTable(name = "ORGANISATION_GROUP_MEMBER_AUD") 
    @JoinTable(name = "ORGANISATION_GROUP_MEMBER", joinColumns = @JoinColumn(name = "ORGANISATION_GROUP_ID", referencedColumnName = "ID"), inverseJoinColumns = @JoinColumn(
      name = "ORGANISATION_ID", referencedColumnName = "ID")) 
    private List<Organisation> organisations = new ArrayList<>(0); 

} 

@Entity 
@Table(name = "ORGANISATION") 
public class Organisation implements Serializable { 

    private static final long serialVersionUID = 1L; 
    @Id 
    private Long id; 

    @Column(name = "name", length = 255, nullable = false) 
    private String name; 

    @OneToMany(mappedBy = "organisationId", cascade = CascadeType.ALL, orphanRemoval = true) 
    @OrderBy(value = "location ASC") 
    private List<OrganisationLocation> locations; 

} 

@Entity 
@Table(name = "ORGANISATION_LOCATIONS") 
public class OrganisationLocation implements Serializable { 
    private static final long serialVersionUID = 1L; 

    @Id 
    private Long id; 

    @Column(name = "LOCATION") 
    private String location; 

} 

` Я пытался использовать @LazyCollection на атрибут места, но по-прежнему получать то же исключение. Тем не менее, то же самое работает без диаграммы сущностей и создания местоположений в качестве типа fetch eager. Как разрешить эту ошибку, используя граф объекта?

ответ

2

Если у вас нет повода для этого, попробуйте изменить свои коллекции, чтобы использовать Set вместо List.

+0

Спасибо, Дэвид. После изменения всех моих коллекций в Set я не вижу никаких проблем. То, что я не могу понять, так это то, что он только терпит неудачу при использовании графа сущности? – Shashank