I have two business objects having many too many relationships. I am using a REST service to call the DAO method given below and get a list of political indicators for a political event. However though the piList in DAO successfully gives me the list of Political Indicators but it still gives me an exception
Failed to lazily intialize a collection of role...
through reference chain:
org.hibernate.collection.internal.PersistentBag[0]----->PolIndicator.piList.role
org.jboss.resteasy.spi.writerException
org.codehaus.jackson.map.JsonmappingException"
I have used @JsonIgnore
in the Political Indicator class against the political event property but still the lazy exception happens.
Where am I going wrong?
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 <PolIndicator> 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 <PolEvent> eventList;
}
DAO Layer Code
public List <PolIndicator> 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();
}
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…