【发布时间】:2015-11-14 08:44:58
【问题描述】:
我正在通过 spring data 使用 spring boot 1.2.5 和 Hibernate 4.3.10,我编写了下面的代码。
我想使用子图,以便在获取名为“content.search”的实体图时可以检索数据。
这是我的代码。
@NamedEntityGraphs({@NamedEntityGraph(name = "content.search",
includeAllAttributes=true,
attributeNodes = {
@NamedAttributeNode("mstItem")
,@NamedAttributeNode(value="itemTypeGraph",subgraph="itemTypeGraph")
}, subgraphs = {@NamedSubgraph(name = "itemTypeGraph",
attributeNodes = {@NamedAttributeNode("mstItemType")
,@NamedAttributeNode("mstItemName")
}
)
}
)})
public class Content implements java.io.Serializable { ... }
当我指定此行时,它会产生如下错误。(没有此行,它可以正常工作,但无法将子图中的数据检索为 EAGER 类型(稍后可以检索为 LAZY)
,@NamedAttributeNode(value="itemTypeGraph",subgraph="itemTypeGraph")
这是我遇到的错误。
[org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]: 调用 init 方法失败;嵌套异常是 java.lang.IllegalArgumentException:无法找到属性 此 ManagedType 上的给定名称 [itemTypeGraph] [com.example.domain.Content]
从另一个问题来看,这个错误似乎在hibernate 4.3.9或更高版本之前修复了,但是我仍然遇到这个错误并且无法在子图中获取数据...为什么找不到itemTypeGraph?我应该如何更改代码?
【问题讨论】:
-
我怀疑该错误尚未修复或...我的代码有问题。
-
任何人都可以使用 spring-data 的 subgraph 函数吗?如果是这样,我想看看这个程序......
标签: spring hibernate jpa spring-boot spring-data