目前我正在从事基于Spring数据Neo4j的项目。在大多数节点中,可以有多种类型的不同关系,如下面的示例所示。
@NodeEntity(label = CollectionNames.User)
public class User{
@GraphId
private Long id;
//Different Parameters, removed because these are irrelevant
@Relationship(type = RelationshipNames.HAS_CONTACT, direction = Relationship.OUTGOING)
private Set<HasContact> contactList;
@Relationship(type = RelationshipNames.HAS_INVITED, direction = Relationship.OUTGOING)
private Set<HasInvited> invitedContacts;
@Relationship(type = RelationshipNames.HAS_FAVORITE, direction = Relationship.OUTGOING)
private Set<HasFavorite> favoriteMerchants;
//And so many others such relationships
//Constructor and Getters() & Setters()
}
@Repository
public interface UserRepository extends GraphRepository<User>{
List<User> findByUsernameIn(Set<String> username, @Depth int depth);//Here for exp, I just want to load user with his/her 'contactList' entries only
User findByUsername(String username, @Depth int depth);
}
虽然在加载具有给定深度的给定用户时,此存储库工作正常,但主要问题是此查询将加载具有给定深度的所有现有关系。在这里,我只对某些/或一种特定类型的关系感兴趣,那么如何使用Spring命名的查询方法实现这一点呢?在使用命名查询方法加载时,是否可以为每个关系指定深度?或者我必须使用@query注释为每个这样的关系编写自定义查询?我们希望尽量减少自定义查询的使用!
那么,对于这种情况,Spring Data Neo4j中最好的存储库设计是什么?建议将高度赞赏!
自SDN版本4.2起。在@query
中或通过使用会话进行x自定义密码查询。如果要避免加载所有相关实体,查询
是最佳选择。
在即将发布的版本中,正在进行更细粒度加载的工作。看到这个github问题。
问题内容: 我创建了一个简单的存储库,其中包含系统中的所有人员,一切似乎都正常运行。我可以根据给定的键和值添加,删除甚至取回单个人,但是由于某种原因,我无法直接取回存储在存储库中的所有人。我尝试通过使用findAll()方法来执行此操作,该方法应返回一个可迭代的对象。然后,我尝试使用可迭代对象进行迭代,并将每个人存储在要函数返回的arraylist中。 打印线打印“ 3”,因此存储库不为空,但在以
我希望像查询NodeEntity一样查询RelationshipEntity。 软件包信息: 此存储库不工作。 getEmployeeWorkingOnProject(String,String)返回NULL 我在关键字之后进行了修改,例如将其从修改为像这样的别名,并且还尝试更改了返回中别名的顺序。 我希望获得与特定员工和特定项目相关联的所有状态(边缘)。 或 或其他类型的类似结果,其中关系实体持
我已经实现了一个小用例来评估Spring Data Neo4j。我有一个接口,它扩展了GraphRepository。 界面是这样的: 这给了我错误< code >“类型PublicRepository的层次结构不一致”。 这种类型的错误是因为当前类扩展/实现的类/接口之一不存在,而当前类又在扩展/实现另一个类/接口。 查看核心库的包我发现库中没有扩展为CRUDRepository的接口。我在Ne
问题内容: 我正在使用maven和Jenkins进行自动构建。我正在寻找最佳的Maven开源存储库管理。这样我就可以通过存储库管理器在Maven和jenkins之间进行整合。 问题答案: 我至少知道三个选择 sonatype products archiva.apache(Apache Archiva) 我已经使用了所有三个,每个都有优点和缺点。 我会选择Nexus,因为它得到了Sonatype的
我在使用spring-data-neo4j的项目中遇到了一些问题。我有一个节点实体类: 并使用以下方法为其创建存储库: 然后测试,就像这样: > 创建id为123456的广告节点,包含关键字1和关键字2-ok 创建id为654321且包含关键字1的广告节点-确定 获取广告ID 654321-工作正常,生成的查询是: 开始=节点:(={0})返回params{0=654321} 使用findSimi
我是Spring data neo4j的新手,我对GraphRepository有一些错误/问题。 我第一次有了这个: 但是阅读一些文档,存储库已经提供了这样的方法。我不需要写它们。 这是我的产品域名。 这是我的实验班 未检测到查找字节 Id 这正常吗? 这是我的pom.xml