pbount
pbount

Reputation: 1803

Object is not an instance of a persistable class warning with Spring boot and Neo4j

I have a pretty straightforward class called User which is supposed to create user objects containing user information and login details.

package com.example.domain;
import org.neo4j.ogm.annotation.GraphId;
import org.neo4j.ogm.annotation.NodeEntity;
import org.neo4j.ogm.annotation.Relationship;

import java.util.HashSet;
import java.util.Set;

@NodeEntity
public class User {

public User() {}

@GraphId
private Long id;

private String username;
private String password;
private String name;
private String email;
private String Role;

@Relationship(type="BELONGS_TO", direction = Relationship.INCOMING)
Set<Item> items = new HashSet<>();

public User(String name, String username, String password, String email) {
    this.name = name;
    this.username = username;
    this.password = password;
    this.email = email;
}

// Getters and setters below for private fields...
}

The controller creating the object looks like this:

@RequestMapping(value = "/register",method = RequestMethod.POST)
public String register(Model model,
                       @ModelAttribute(value="name") String name,
                       @ModelAttribute(value="username") String username,
                       @ModelAttribute(value="email") String email,
                       @ModelAttribute(value="password") String password,
                       @ModelAttribute(value="confirmPassword") String confirmPassword) {

    if(!password.equals(confirmPassword)) {
        model.addAttribute("error", true);
        return "register";
    }
    User userEntity=new User(name,username,password,email);
    userManagementService.save(userEntity); //<------The object is created but the error occures during persistance
    return "login";
}

and my user management service looks like this:

public interface UserManagementService {

List<User> listAll();
User save(User user);

User findUser(String username);
}

What makes the User class, not an instance of a persistable class. What are the characteristics of a persistable class and how can I make User a persistable class?

Upvotes: 0

Views: 305

Answers (1)

ramenhood
ramenhood

Reputation: 48

Have you configured the OGM somewhere? Either in a Java configuration or in a ogm.properties file? You'll need to specify the driver type and tell the SessionFactory where to look for your domain objects.

OGM config reference: https://neo4j.com/docs/ogm-manual/2.1/reference/#reference:configuration SessionFactory config reference: https://neo4j.com/docs/ogm-manual/2.1/reference/#reference:connecting:session-factory

Upvotes: 1

Related Questions