【发布时间】:2018-12-30 08:51:03
【问题描述】:
我在 neo4j 中建模了一个简单的有限状态机图,其中域由State 实体和FOLLOWED_BY 关系组成(密码:(s1:State)-[r:FOLLOWS]->(s2:State))。
每个都有一些属性。我现在需要分析各州之间的关系,不知道返回类型如何
存储库界面应该是这样的。
实体和关系类的(缩短的)代码(带有 lombok 注释):
@NodeEntity
@NoArgsConstructor
public class State {
@Getter
private String name;
@Getter
private String inputVariable;
@Getter
private String outputVariable;
}
@RelationshipEntity(type = "FOLLOWED_BY")
@NoArgsConstructor
public class Transition implements FlowTransition {
@Getter
@Property
private String guard;
@Getter
@StartNode
private State sourceState;
@Getter
@EndNode
private State targetState;
}
对于一些分析,从一个状态到后续状态存在哪些路径,其中第一个状态的输出变量用作 以下状态的输入变量,我需要查询返回的路径。当我使用SDN时,我想拥有它 在存储库的(自定义)查询中返回。
@Repository
public interface StateRepository extends Neo4jRepository<State, Long> {
@Query("MATCH p=allShortestpaths((s1:State)-[r:FOLLOWED_BY*1..200]->(s2:State))"
+ " WHERE s1.outputVariable = s2.inputVariable AND id(s1) = {eId}"
+ " RETURN p)"
??? findAllByBpelPathRegEx(@Param("eId") String startId);
}
我的问题是:我应该使用什么类作为返回类型来获取路径对象? EntityPath 或 EndResult 似乎在 SDN5 中不再存在(可能还有 4 个),那该怎么办?也许是预测,但它们应该看起来像吗?
【问题讨论】:
标签: spring neo4j spring-data-neo4j