笔者以spring-data-neo4j-5.0.5为例,侧重使用纯spring的方式使用neo4j实现图库的增删改查。
spring-boot的方式网上资料很多,不是笔者今天的关注点,因为大部分工作spring-boot都做好了,开发者要做的很少。
这里简单使用一个domain,和一个repository模拟一个节点插入的场景。
节点定义
AssetNodeNeo.java
@NodeEntity
@Getter
@Setter
@RequiredArgsConstructor
public class AssetNodeNeo {
@Id
@GeneratedValue
private Long id;
private Long assetId;
private String logicName;
private String physicsName;
private Long storageId;
private long modifyTime;
public AssetNodeNeo(Long assetId, String logicName, String physicsName, Long storageId, long modifyTime) {
this.assetId = assetId;
this.logicName = logicName;
this.physicsName = physicsName;
this.storageId = storageId;
this.modifyTime = modifyTime;
}
}
持久层定义
AssetNodeRepository.java
public interface AssetNodeRepository extends Neo4jRepository<AssetNodeNeo,Long>,CustomizedRepository {
}
这里继承Neo4jRepository,既spring-data-neo4j-4.x的GraphRepository,对增删改查做好了封装,相当于关系型的jdbcTemplate。
逻辑层定义
TestService.java
@Service
public class TestService {
@Autowired
private AssetNodeRepository assetNodeRepository;
public void createNode() {
AssetNodeNeo a1 = new AssetNodeNeo(257L, "a1", "a1", 6L,
System.currentTimeMillis