gpt4 book ai didi

java - LazyInitializationException - 未能延迟初始化角色集合

转载 作者:太空宇宙 更新时间:2023-11-04 10:52:13 27 4
gpt4 key购买 nike

此代码的目的是允许用户检查 ID;在这种情况下,它将是检查特定运动比赛的 ID,以便查看相关比赛及其详细信息。这样做的全部目的是通知用户,如果他们输入了错误的 ID,我只是想在 SOAP 请求中生成一条消息,通知输入的竞争 ID 不正确。当我调试代码时,我遇到错误“LazyInitializationException:无法延迟初始化角色集合”,有什么想法吗?

public void CompetitionIdChecker(Set<RestrictionFailure> failures, CompetitionSetup competition) {
Long compId21 = Long.valueOf(competition.getCompetitionId());
try {
Node competitionNode = nodeDao.findById(competition.getCompetitionId());
Set<Node> childNodes = competitionNode.getChildNodes();
Iterator<Node> nodeItr = childNodes.iterator();
Node feedNode = nodeItr.next();
Feed incidentFeed = competition.getIncidentProvider();
Node Node = null;
if (incidentFeed.name().equalsIgnoreCase(feedNode.getSys().getCode())) {
Node = feedNode.findLinkedNode(new SystemKey(incidentFeed.name()));
}
if (Node != null) {
// as node is set as final level in nodes hierarchy
if (Node.getChildNodes().size() > 0) {
System.out.println("it is not valid");
failures.add(new RestrictionFailure("Competition ID does not exist in Nodes table"));
} else {
System.out.println("compId is valid");
}

}
} catch (Exception e) {
LOGGER.error("Error getting competition id", e);
// rollback(tx);
}
}

最佳答案

多对一关系的默认映射设置为延迟加载。这意味着当您获取父对象时,不会查询子节点。这是有道理的,因为否则您将查询父对象的所有关系,即使您永远不会使用它。因此,当您访问此类子对象时,您会收到 LazyLoadingException。为了克服这个问题,您可以将映射设置为非惰性映射,或者进行查询来获取子项。请看一下 fetch joins。 https://docs.jboss.org/hibernate/orm/3.5/reference/de-DE/html/queryhql.html#queryhql-joins

关于java - LazyInitializationException - 未能延迟初始化角色集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47693221/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com