Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用接口使@Fetch工作_Java_Spring_Neo4j_Spring Data Neo4j - Fatal编程技术网

Java 使用接口使@Fetch工作

Java 使用接口使@Fetch工作,java,spring,neo4j,spring-data-neo4j,Java,Spring,Neo4j,Spring Data Neo4j,我创建了一个数据访问层,其中包含Spring数据Neo4j类,这些类在接口后面访问 例如,我有一个Car接口和一个CarNode类,它使用SDN注释,如@RelatedTo: @RelatedTo(elementClass=CarNode.class,type=“drives”,direction=OUTGOING) 私家车司机; 如果仔细观察,@RelatedTo指的是CarNode类,驱动程序被定义为Set(而不是Set) 这个很好用 现在我想使用@Fetch来启用即时加载 如果我只是这样

我创建了一个数据访问层,其中包含Spring数据Neo4j类,这些类在接口后面访问

例如,我有一个Car接口和一个CarNode类,它使用SDN注释,如
@RelatedTo

@RelatedTo(elementClass=CarNode.class,type=“drives”,direction=OUTGOING)
私家车司机;
如果仔细观察,@RelatedTo指的是
CarNode
类,
驱动程序
被定义为
Set
(而不是
Set

这个很好用

现在我想使用
@Fetch
来启用即时加载

如果我只是这样做:

@RelatedTo(elementClass=CarNode.class,type=“drives”,direction=OUTGOING)
@取回
私家车司机;
我得到以下错误:

Type interface org.my.project.Driver is neither a @NodeEntity nor a @RelationshipEntity
这是否可以告诉
@Fetch
它应该期望
DriverNode
,就像我们使用
elementClass
属性时使用
@RelatedTo
一样


我希望避免破坏我当前的体系结构。谢谢你的提示

我遇到了一个类似的问题,我使用
Set
字段中的实现类解决了它,即

@RelatedTo(type = "drives", direction = OUTGOING)
@Fetch private Set<DriverNode> drivers;

set
方法中,您必须将
set
集合强制转换为
set
,但这并没有违反接口规则,因为它还是一个被公共接口隐藏的实现细节。

我遇到了一个类似的问题,我使用
set
字段中的实现类解决了它,即

@RelatedTo(type = "drives", direction = OUTGOING)
@Fetch private Set<DriverNode> drivers;

set
方法中,您必须将
set
集合强制转换为
set
,但这并没有违反接口规则,因为它还是一个被公共接口隐藏的实现细节。

我发布这个问题已经一年多了。再看一遍,问题现在对我来说是显而易见的:我完全误解并误用了
elementClass
属性。当我写道:

@RelatedTo(elementClass = CarNode.class, type = "drives", direction = OUTGOING)
private Set<Driver> drivers;
因此,唯一需要使用
DriverNode
具体类的地方是
elementClass
属性内部。您根本不需要使用泛型


脚印:我不再使用
@Fetch

我发布这个问题已经一年多了。再看一遍,问题现在对我来说是显而易见的:我完全误解并误用了
elementClass
属性。当我写道:

@RelatedTo(elementClass = CarNode.class, type = "drives", direction = OUTGOING)
private Set<Driver> drivers;
因此,唯一需要使用
DriverNode
具体类的地方是
elementClass
属性内部。您根本不需要使用泛型


脚印:我不再使用
@Fetch

你好,雷米吉奥。我尝试了你的想法,但我发现
类型不匹配:无法从集合转换到集合
。似乎不可能进行收藏。你确定这是你用的吗?我的错,我用正确的代码编辑了我的答案。谢谢,这很有效。唯一的缺点是我的接口现在显示
set这也是我关心的问题,不管怎样,这是一个获得更好抽象的代价。嗨,Remigio。我尝试了你的想法,但我发现
类型不匹配:无法从集合转换到集合
。似乎不可能进行收藏。你确定这是你用的吗?我的错,我用正确的代码编辑了我的答案。谢谢,这很有效。唯一的缺点是我的接口现在显示
set这也是我关心的问题,不管怎样,这是一个获得更好抽象的代价。