当前位置: 首页 > 知识库问答 >
问题:

Spring数据Neo4J和GraphAware时间树

孙池暝
2023-03-14

有没有人使用Java API使用GraphAware TimeTree处理Spring数据Neo4J,并能提供一个简单的示例?

共有2个答案

鲜于岳
2023-03-14

这是我的第一个存储库类。看起来很有效,但迈克尔或卢安(或其他人)可能会在这方面有显著的改进。我还没有包括对某个范围内事件的查询,但它们即将出现。

关于此处内容的几个注释:

timeType参数是域节点和时间树之间关系的名称。

package myproject.core.repository.timeline;

import org.springframework.data.neo4j.annotation.Query;
import org.springframework.data.neo4j.repository.Neo4jRepository;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;

import myproject.BaseNode;

@Repository
public interface TimelineRepository extends Neo4jRepository<BaseNode> {

// Attaches a node to the time tree
    @Query("match (e:Event {domainId: {domainId}}) with e call ga.timetree.events.attach({node: e, time: {timestamp}, resolution: 'MILLISECOND', relationshipType: {timeType}}) yield node return node;")
    public void setTime(@Param("domainId") String domainId, @Param("timeType") String typeType, @Param("timestamp") Long timestamp);

// Detaches a node from the timetree
    @Query("match (e:Event {domainId: {domainId}})-[s]-() where type(s) = {timeType} delete s;")
    public void unsetTime(@Param("domainId") String domainId, @Param("timeType") String timeType);
}

下面是我在neo4j中的配置。形态。我正在使用neo4j 3.0.6。我在这里写的几乎都是直接从https://github.com/graphaware/neo4j-timetree.

#For the framework to work at all, you need this
dbms.unmanaged_extension_classes=com.graphaware.server=/graphaware

# Runtime must be enabled like this
com.graphaware.runtime.enabled=true

# A Runtime module that takes care of attaching the events like this (TT is the ID of the module)
com.graphaware.module.TT.1=com.graphaware.module.timetree.module.TimeTreeModuleBootstrapper

# autoAttach must be set to true
com.graphaware.module.TT.autoAttach=true

#Uncommenting this prevents properties of our Event class from persisting
# Optionally, nodes which represent events and should be attached automatically have to be defined (defaults to nodes with label Event)
#com.graphaware.module.TT.event=hasLabel('Message')

# Optionally, a property on the event nodes that represents the the time (long) at which the event took place must be specified (defaults to "timestamp")
#com.graphaware.module.TT.timestamp=time

# Optionally, a property on the event nodes that represents the node ID (long) of the root node for the tree, to which the event should be attached (defaults to "timeTreeRootId")
#com.graphaware.module.TT.customTimeTreeRootProperty=rootId

# Optionally, a resolution can be specified (defaults to DAY)
#com.graphaware.module.TT.resolution=MILLISECOND

# Optionally, a time zone can be specified (defaults to UTC)
#com.graphaware.module.TT.timezone=GMT+1

# Optionally, a relationship type with which the events will be attached to the tree can be specified (defaults to AT_TIME)
#com.graphaware.module.TT.relationship=SENT_ON

# Optionally, a relationship direction (from the tree's point of view), with which the events will be attached to the tree can be specified (defaults to INCOMING)
#com.graphaware.module.TT.direction=INCOMING

您应该能够创建一些看起来有点像这样的东西(以最简单的形式)。。

周翰
2023-03-14

GraphAware扩展是服务器端代码,Spring数据Neo4j是客户端代码。记住这一点,您可以按照此处和此处相同的行注释使用SDN(假设为v4)的Java类,以便使映射与时间树结构匹配。

也就是说,SDN(v4)还没有对非托管扩展和事务事件处理程序的任何显式支持(GraphAware框架同时支持这两个),所以您需要自己来处理。例如,如果使用时间树自动附加功能并从SDN中持久化事件,则需要重新加载它才能获取时间树节点。

 类似资料:
  • 我正试图利用我的spring数据Neo4J4.0中的时间树库。0项目。 如本页所述,https://github.com/graphaware/neo4j-timetree,我编辑了我的neo4j。属性文件以启用自动事件附加,将时间树依赖项添加到my gradle,并在具有长数据类型的事件节点中设置属性“creationDate”。尽管一切看起来都应该如此,但它仍然没有创建任何时间树。 以下是我的

  • 是否有人拥有使用GrailsV3的SpringDataNeo4j(3.3.0)并愿意共享配置? 我想让Web界面工作(按这里:如何启用neo4j webadmin时使用sping-data-neo4j?),但我有点失去了当试图找出什么应该去,作为Grails从扩展它,所示示例从扩展它。

  • 我试图编写一个返回大量数据(200个节点)的查询。节点非常简单: 我最初使用Spring Data Neo4j模板接口,但在返回大约100个节点后发现它非常慢。 所以,我的问题是:是否有一种方法可以提供标签作为Cypher查询的一部分,以防止需要再次查询每个节点?或者,除此之外,是否有一种方法可以为SDN提供一个包含标签和属性的并将其转换为POJO? 注意:我意识到SDN团队正在未来的版本中完全使

  • 我正在使用数据库和。现在,我想导入相当大的数据集,因此我研究了的批插入功能。 经过我的研究,我发现: 用于嵌入式数据库:http://docs.neo4j.org/chunked/stable/batchinsert.html以及使用它的Michael Hunger项目:https://github.com/jexp/batch-import/ REST批处理终结点:http://docs.neo

  • 我有与Spring data neo4j一起工作的Spring服务,我决定将Spring data neo4j从2.2更新到当前版本-3.1.4。释放。所以第一次我更新了neo4j,项目失败了,我更新了Spring版本,不同的版本有不同的例外。这个服务包括在我的前端,我叫它是从网络。所以我不知道什么是最佳配置???配置与maven。这里有pom.xml Spring配置文件 所以每次加载db例外,

  • 我正在使用: neo4j 2.0。1 我有一个具有属性名称的节点人员,我想用Lucene语法搜索该属性。我在我的存储库中使用findByNamelike方法,它非常适合像value*或*value或*etc这样的查询。 但是我需要这样的查询{A*TO D*}。我发现了一个弃用的方法findAllByQuery(名称,查询),用这个方法我可以实现我的需求。 > 我还注意到,如果我从cypher创建节