내가org.hibernate.LazyInitializationException : 프록시를 초기화 할 수 없습니다 - 더 Session.After 디버그 조회는 미세하지만
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name = "CNTRY_ID")
private Country country;
Country.java 이런 일을 가지고이 관계가있는 클래스 ContactAddress.java이 작동하지 않습니다
ContactAddressAction.java에서@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "CNTRY_ID")
private Integer id;
@Column(name = "NM")
private String name;
@Column(name = "ISO_CD")
private String isoCode;
@Column(name = "SRT_ORDR")
private Integer sortOrder;
@OneToMany(mappedBy="country")
private List<State> states = new ArrayList<State>();
나는 방법 저장 호출
public String save() throws Exception {
// Add the relationship
contactAddress.setAccount(getAccount());
// Is this an update?
if (index != null) {
getAccount().getContactAddresses().set(index, contactAddress);
} else {
List<ContactAddress> contactAddressList = getAccount().getContactAddresses();
contactAddressList.add(contactAddress);
//getAccount().getContactAddresses().add(contactAddress);
getAccount().setContactAddresses(contactAddressList);
}
return SUCCESS;
}
WHI 이 메서드를 호출하면 위의 예외가 발생합니다. 연락처 adrreses 목록은 데이터베이스에 저장되지만 저장 후 즉시 표시되지 않습니다. 내가 코드를 디버깅 변수를 통해 목록 변수를 보면
JSP 코드
또한c:forEach items="${addresses}" var="address" varStatus="stat">
<s:url id="updateAddressUrl" action="update" namespace="/account/address">
<s:param name="index" value="${stat.index}" />
</s:url>
<s:url id="deleteAddressUrl" action="delete" namespace="/account/address">
<s:param name="index" value="${stat.index}" />
</s:url>
<tr class="address deletable">
<td>${address.type}</td>
<td>${address.primary ? 'Yes' : 'No'}</td>
<td>${address.active ? 'Yes' : 'No'}</td>
<td>${address.companyName}</td>
<td>
<v:address value="${address}"/>
<hr>
<table class="info">
<tr>
<th>Best Contact Time:</th>
<td>${address.bestContactTime}</td>
</tr>
<tr>
<th>Office Hours:</th>
<td>
Monday: <span class="value">${address.officeHourMonday}</span>
Tuesday:<span class="value">${address.officeHourTuesday}</span>
Wednesday:<span class="value">${address.officeHourWednesday}</span>
Thursday:<span class="value">${address.officeHourThursday}</span>
Friday:<span class="value">${address.officeHourFriday}</span>
</td>
</tr>
<tr>
<th>Lunch Time:</th>
<td>${address.officeLunchTime}</td>
</tr>
</table>
</td>
<td class="actions">
<a href="${updateAddressUrl}" class="popup-link button-link"><strong>Edit</strong></a>
<c:if test="${user.primaryAddressManageable}">
<a href="${deleteAddressUrl}" class="deletelink button-link"><strong>Delete</strong></a>
</c:if>
</td>
</tr>
</c:forEach>
는, 그것은 잘 작동하고 저장 한 후 목록을 표시합니다.
것은 내가 구글을 검색 한 후 모든 노력을하지만 누군가가 알려 주시기 바랍니다 helping.Can하지 않은 나는 어디하지 advanve :)에서 correct.Thanks
가 작동하는 것 같군 : ( – user2820678
하지만 저장 방법을 변경하지 말고, 검색 방법을 변경하십시오. 개체. 아니면 EAGER – Carlos487
과의 관계를 변경해 테스트 해 볼 수 있습니다. 두 가지 일을 모두 시도했는데 ..하지만 didnt work .. – user2820678