尽管使用了JsonIgnore,但未能懒惰地初始化ManyToMany关系中的角色集合

我有两个业务对象有很多关系。 我正在使用REST服务来调用下面给出的DAO方法,并获得政治事件的政治指标列表。 然而,虽然DAO中的piList成功地给了我政治指标列表,但它仍然给了我一个例外

Failed to lazily intialize a collection of role...

通过参考链:

 org.hibernate.collection.internal.PersistentBag[0]----->PolIndicator.piList.role org.jboss.resteasy.spi.writerException org.codehaus.jackson.map.JsonmappingException" 

我在政治指标类中使用了@JsonIgnore来对抗政治事件属性,但仍然发生了懒惰的exception。

我哪里错了?

 PolEvent { @Id @Column(name="SEQ_EVENT_ID") private BigDecimal id; @Column(name="EVENT_NAME") private String eventName; @ManyToMany @JoinTable( name="POL_LINK_INDCTR" joinColumns={@JoinColumn(name="SEQ_EVENT_ID")}, inverseJoinColumns=@JoinColumn(name="SEQ_PI_ID") ) private List  piList; } PolIndicator { @Id @Column(name="SEQ_PI_ID") private BigDecimal id; @Column(name="POL_IND_NAME") private String piName; @ManyToMany(mappedBy="piList") @JsonIgnore private List  eventList; } 

DAO层代码

 public List  getPiList (String eventId) { Criteria criteria = session.createCriteria(PolEvent.class); criteria.add(Restrictions.eq("id",id); PolEvent polEvent = new PolEvent(); polEvent=criteria.uniqueResult(); piList = polEvent.getPiList(); return piList(); } 

您需要将注释移动到getter方法:

 @JsonIgnore public List  getEventList() { return eventList; }