无法获取节点 ID 和节点标签,Spring Data Neo4j

问题描述

I 方法在服务类中调用 Repository 类中具有相同行为的方法以从 Neo4jRepository 获取实体结果。这是方法

    PersonnelNode personnelNodeData = personnelNodeDao.getByPersonnelId(Long.valueOf("2"));
            
    ProductNode productNodeData = productNodeDao.findByProductId(Long.valueOf("21"));

PersonnelNodeRepository 类

public interface PersonnelNodeRepository extends Neo4jRepository<PersonnelNode,Long> {

    PersonnelNode findByPersonnelId(Long personnelId);
}

ProductNodeRepository 类

public interface ProductNodeRepository extends Neo4jRepository<ProductNode,Long>,ProductNodeRepositoryCustom {

    ProductNode findByProductId(Long productId);
}

这是我的 PersonnelNode 实体类

@NodeEntity(label="Personnel")
public class PersonnelNode {

    private Long id;
    
    private Set<String> labels;
    
    @GraphId
    private Long personnelId;
    
    private String personnelKey;    
    
    private String personnelNameIN;
    
    private Boolean isTeamleader;
    
    private Boolean isQA;
    
    private Boolean isSuperUser;
    
    private Short companyGroupId;

    private Boolean isActive;

    private Timestamp created;

    private String createdBy;

    private Timestamp lastModified;

    private String lastModifiedBy; 
//
    @Relationship(type="PERSONNEL_TASK",direction=Relationship.OUTGOING)
    private TaskNode personnelTasks;
    
    private Long employeeDataId;

    public PersonnelNode() {
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Set<String> getLabels() {
        return labels;
    }

    public void setLabels(Set<String> labels) {
        this.labels = labels;
    }

    public Long getPersonnelId() {
        return personnelId;
    }

    public void setPersonnelId(Long personnelId) {
        this.personnelId = personnelId;
    }

    public String getPersonnelKey() {
        return personnelKey;
    }

    public void setPersonnelKey(String personnelKey) {
        this.personnelKey = personnelKey;
    }

    public String getPersonnelNameIN() {
        return personnelNameIN;
    }

    public void setPersonnelNameIN(String personnelNameIN) {
        this.personnelNameIN = personnelNameIN;
    }

    public Boolean getIsTeamleader() {
        return isTeamleader;
    }

    public void setIsTeamleader(Boolean isTeamleader) {
        this.isTeamleader = isTeamleader;
    }

    public Boolean getIsQA() {
        return isQA;
    }

    public void setIsQA(Boolean isQA) {
        this.isQA = isQA;
    }

    public Boolean getIsSuperUser() {
        return isSuperUser;
    }

    public void setIsSuperUser(Boolean isSuperUser) {
        this.isSuperUser = isSuperUser;
    }

    public Short getCompanyGroupId() {
        return companyGroupId;
    }

    public void setCompanyGroupId(Short companyGroupId) {
        this.companyGroupId = companyGroupId;
    }

    public Boolean getIsActive() {
        return isActive;
    }

    public void setIsActive(Boolean isActive) {
        this.isActive = isActive;
    }

    public Timestamp getCreated() {
        return created;
    }

    public void setCreated(Timestamp created) {
        this.created = created;
    }

    public String getCreatedBy() {
        return createdBy;
    }

    public void setCreatedBy(String createdBy) {
        this.createdBy = createdBy;
    }

    public Timestamp getLastModified() {
        return lastModified;
    }

    public void setLastModified(Timestamp lastModified) {
        this.lastModified = lastModified;
    }

    public String getLastModifiedBy() {
        return lastModifiedBy;
    }

    public void setLastModifiedBy(String lastModifiedBy) {
        this.lastModifiedBy = lastModifiedBy;
    }

    public Long getEmployeeDataId() {
        return employeeDataId;
    }

    public void setEmployeeDataId(Long employeeDataId) {
        this.employeeDataId = employeeDataId;
    }

    public TaskNode getPersonnelTasks() {
        return personnelTasks;
    }

    public void setPersonnelTasks(TaskNode personnelTasks) {
        this.personnelTasks = personnelTasks;
    }

}

ProductNode 实体类

@NodeEntity(label="Product")
public class ProductNode {
    
    private Long id;
    
    private Set<String> labels;
    
    @GraphId
    private Long productId;
    
    private String productName;
    
    private String productDescription;
    
    private String productNotes;
    
    private Boolean isSolutions;
    
    private String roleDescription;
    
    private String databaseDescription;
    
    private String tableDescription;
    
    private Boolean isIntegrateBpmtask;
    
    private String integrateBpmtaskDescription;
    
    private Boolean isUseNotification;
    
    private String useNotificationDescription;
    
    private Boolean isUseBackgroundProcess;
    
    private String useBackgroundProcessDescription;
        
    private Short companyGroupId;
    
    private String productKey;
    
    private Boolean isActive;

    private Timestamp created;

    private String createdBy;

    private Timestamp lastModified;

    private String lastModifiedBy;

    @Relationship(type="TASK_OF_PRODUCT",direction=Relationship.INCOMING)
    private TaskNode taskNode;
    
    public ProductNode(){
        
    }
    
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Set<String> getLabels() {
        return labels;
    }

    public void setLabels(Set<String> labels) {
        this.labels = labels;
    }

    public Long getProductId() {
        return productId;
    }

    public void setProductId(Long productId) {
        this.productId = productId;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public String getProductDescription() {
        return productDescription;
    }

    public void setProductDescription(String productDescription) {
        this.productDescription = productDescription;
    }

    public String getProductNotes() {
        return productNotes;
    }

    public void setProductNotes(String productNotes) {
        this.productNotes = productNotes;
    }

    public Boolean getIsSolutions() {
        return isSolutions;
    }

    public void setIsSolutions(Boolean isSolutions) {
        this.isSolutions = isSolutions;
    }

    public String getRoleDescription() {
        return roleDescription;
    }

    public void setRoleDescription(String roleDescription) {
        this.roleDescription = roleDescription;
    }

    public String getDatabaseDescription() {
        return databaseDescription;
    }

    public void setDatabaseDescription(String databaseDescription) {
        this.databaseDescription = databaseDescription;
    }

    public String getTableDescription() {
        return tableDescription;
    }

    public void setTableDescription(String tableDescription) {
        this.tableDescription = tableDescription;
    }

    public Boolean getIsIntegrateBpmtask() {
        return isIntegrateBpmtask;
    }

    public void setIsIntegrateBpmtask(Boolean isIntegrateBpmtask) {
        this.isIntegrateBpmtask = isIntegrateBpmtask;
    }

    public String getIntegrateBpmtaskDescription() {
        return integrateBpmtaskDescription;
    }

    public void setIntegrateBpmtaskDescription(String integrateBpmtaskDescription) {
        this.integrateBpmtaskDescription = integrateBpmtaskDescription;
    }

    public Boolean getIsUseNotification() {
        return isUseNotification;
    }

    public void setIsUseNotification(Boolean isUseNotification) {
        this.isUseNotification = isUseNotification;
    }

    public String getUseNotificationDescription() {
        return useNotificationDescription;
    }

    public void setUseNotificationDescription(String useNotificationDescription) {
        this.useNotificationDescription = useNotificationDescription;
    }

    public Boolean getIsUseBackgroundProcess() {
        return isUseBackgroundProcess;
    }

    public void setIsUseBackgroundProcess(Boolean isUseBackgroundProcess) {
        this.isUseBackgroundProcess = isUseBackgroundProcess;
    }

    public String getUseBackgroundProcessDescription() {
        return useBackgroundProcessDescription;
    }

    public void setUseBackgroundProcessDescription(String useBackgroundProcessDescription) {
        this.useBackgroundProcessDescription = useBackgroundProcessDescription;
    }
    
    public Short getCompanyGroupId() {
        return companyGroupId;
    }

    public void setCompanyGroupId(Short companyGroupId) {
        this.companyGroupId = companyGroupId;
    }

    public String getProductKey() {
        return productKey;
    }

    public void setProductKey(String productKey) {
        this.productKey = productKey;
    }

    public Boolean getIsActive() {
        return isActive;
    }

    public void setIsActive(Boolean isActive) {
        this.isActive = isActive;
    }

    public Timestamp getCreated() {
        return created;
    }

    public void setCreated(Timestamp created) {
        this.created = created;
    }

    public String getCreatedBy() {
        return createdBy;
    }

    public void setCreatedBy(String createdBy) {
        this.createdBy = createdBy;
    }

    public Timestamp getLastModified() {
        return lastModified;
    }

    public void setLastModified(Timestamp lastModified) {
        this.lastModified = lastModified;
    }

    public String getLastModifiedBy() {
        return lastModifiedBy;
    }

    public void setLastModifiedBy(String lastModifiedBy) {
        this.lastModifiedBy = lastModifiedBy;
    }

    public TaskNode getTaskNode() {
        return taskNode;
    }

    public void setTaskNode(TaskNode taskNode) {
        this.taskNode = taskNode;
    }
    
}

我可以获得 ProductNode 实体的节点 ID 和节点标签,但它在 PersonnelNode 实体中返回空值。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)