请为弹簧数据neo4j rest示例找到以下类
模型类
@Data
@NodeEntity
public class Model implements Serializable {
@Id
@GeneratedValue
private Long id;
private String name;
private String uUID;
private boolean status = true;
@CreatedDate
private Date createdDate;
@LastModifiedDate
private Date modifiedDate;
}
ModelRepository类
@Repository
public interface ModelRepository extends Neo4jRepository<Model, Long> {
Optional<Model> findByStatusTrueAndUUID(UUID uuid);
Stream<Model> streamAllByStatusTrue();
}
服务分类方法
public Model createModel(Model request) throws DSException {
return modelRepository.save(request);
}
Repository.save方法生成以下密码查询
UNWIND {rows} as row MATCH (n) WHERE ID(n)=row.nodeId SET n:`Model` SET n += row.props RETURN row.nodeId as ref, ID(n) as id, {type} as type with params {type=node, rows=[{nodeId=1, props={createdDate=null, name=1-name, modifiedDate=2019-02-26T12:05:16.184Z, uUID=05fdb066-13a4-4ed2-b53f-f3e48b5ff9ba, status=true}}]}
由于上述密码查询具有MATCH
而不是CREATE
,因此请求节点未持久保存在neo4j数据库中
请帮助您理解和解决问题。 以下是使用的版本:
spring-data-neo4j:5.0.7.RELEASE
答案 0 :(得分:0)
问题在于所添加属性的类型。如果您不会传递char[] ch = new char[scores.length];
提供的正确的属性类型(例如字符串或整数),则会遇到此错误
答案 1 :(得分:0)
我遇到了同样的问题。 最后我发现,如果您为 Model 分配了 id 属性,Neo4j Repository Save 方法正在执行 UNWIND MATCH 而不是 UNWIND CREATE; 如果您没有分配 id,那么 Neo4j Repository Save 方法正在执行 UNWIND CREATE。