0

I have 3 entities:

SLUSER_INFO(SLUSER_INFO_ID, FULLNAME, FIRSTNAME, LASTNAME, ADDRESS, DOB) SLUSER(SLUSER_ID, PASSWORD, USERNAME, SLUSER_INFO_ID) SLROLE(SLROLE_ID, ROLENAME, SLUSER_ID) 

In User entity:

 @OneToMany(mappedBy = "user", cascade = CascadeType.ALL, orphanRemoval = true) @JsonView(SlUserView.Full.class) private List<SlRole> roles; @OneToOne(cascade = CascadeType.ALL) @JoinColumn(name = "SLUSER_INFO_ID", referencedColumnName = "SLUSER_INFO_ID") @JsonView(SlUserView.Full.class) private SlUserInfo userInfo; 

In Role entity:

@ManyToOne @JoinColumn(name = "SLUSER_ID", referencedColumnName = "SLUSER_ID") private SlUser user; 

and User_info entity

@OneToOne(mappedBy = "userInfo") private SlUser user; 

I create the rest api to get all user by using JPARepository findAll

@Repository public interface SlUserRepository extends JpaRepository<SlUser, Long> { } 

Controller

 public ResponseEntity<Page<SlUser>> findAll(Pageable pageable) { Page<SlUser> pageResult = usersRepository.findAll(pageable); return new ResponseEntity<Page<SlUser>>(pageResult, HttpStatus.OK); } 

try to run the rest api, the results are duplicated data.

{"content":[{"id":1,"username":"v7001","password":"admin","roles":[{"id":1,"roleName":"ADMIN"}],"userInfo":{"id":1,"fullName":"","firstName":"Jayce","lastName":"Sonar","address":"ad1","dob":null,"user":{"id":1,"username":"v7001","password":"admin","roles":[{"id":1,"roleName":"ADMIN"}],"userInfo":{"id":1,"fullName":"","firstName":"Jayce","lastName":"Sonar","address":"ad1","dob":null,"user":{"id":1,"username":"v7001","password":"admin","roles":[{"id":1,"roleName":"ADMIN"}],"userInfo":{"id":1,"fullName":"","firstName":"Jayce","lastName":"Sonar","address":"ad1","dob":null,"user":{"id":1,"username":"v7001","password":"admin","roles":[{"id":1,"roleName":"ADMIN"}],"userInfo":{"id":1,"fullName":"","firstName":"Jayce","lastName":"Sonar","address":"ad1","dob":null,"user":{"id":1,"username":"v7001","password":"admin","roles":[{"id":1,"roleName":"ADMIN"}],"userInfo":{"id":1,"fullName":"","firstName":"Jayce","lastName":"Sonar","address":"ad1","dob":null,"user":{"id":1,"username":"v7001","password":"admin","roles":[{"id":1,"roleName":"ADMIN"}],"userInfo":{"id":1,"fullName":"","firstName":"Jayce","lastName":"Sonar","address":"ad1","dob":null,"user":{"id":1,"username":"v7001","password":"admin","roles":[{"id":1,"roleName":"ADMIN"}],"userInfo":{"id":1,"fullName":"","firstName":"Jayce","lastName":"Sonar","address":"ad1","dob":null,"user":{"id":1,"username":"v7001","password":"admin","roles":[{"id":1,"roleName":"ADMIN"}],"userInfo":{"id":1,"fullName":"","firstName":"Jayce","lastName":"Sonar","address":"ad1","dob":null,"user":{"id":1,"username":"v7001","password":"admin","roles":[{"id":1,"roleName":"ADMIN"}],"userInfo":{"id":1,"fullName":"","firstName":"Jayce","lastName":"Sonar","address":"ad1","dob":null,"user":{"id":1,"username":"v7001","password":"admin","roles":[{"id":1,"roleName":"ADMIN"}],"userInfo":{"id":1,"fullName":"","firstName":"Jayce","lastName":"Sonar","address":"ad1","dob":null,"user":{"id":1,"username":"v7001","password":"admin","roles":[{"id":1,"roleName":"ADMIN"}],"userInfo":{"id":1,"fullName":"","firstName":"Jayce","lastName":"Sonar","address":"ad1","dob":null,"user":{"id":1,"username":"v7001","password":"admin","roles":[{"id":1,"roleName":"ADMIN"}],"userInfo":{"id":1,"fullName":"","firstName":"Jayce","lastName":"Sonar","address":"ad1","dob":null,"user":{"id":1,"username":"v7001","password":"admin","roles":[{"id":1,"roleName":"ADMIN"}],"userInfo":{"id":1,"fullName":"","firstName":"Jayce","lastName":"Sonar","address":"ad1","dob":null,"user":{"id":1,"username":"v7001","password":"admin","roles":[{"id":1,"roleName":"ADMIN"}],"userInfo":{"id":1,"fullName":"","firstName":"Jayce","lastName":"Sonar","address":"ad1","dob":null,"user":{"id":1,"username":"v7001","password":"admin","roles":[{"id":1,"roleName":"ADMIN"}],"userInfo":{"id":1,"fullName":"","firstName":"Jayce","lastName":"Sonar","address":"ad1","dob":null,"user":{"id":1,"username":"v7001","password":"admin","roles":[{"id":1,"roleName":"ADMIN"}],"userInfo":{"id":1,"fullName":"","firstName":"Jayce","lastName":"Sonar","address":"ad1","dob":null,"user":

Please give me advise

3
  • Probably just circular reference problem baeldung.com/… or stackoverflow.com/a/17393856/1032167 Commented Nov 4, 2017 at 15:31
  • 1
    The error is because of the bidirectionaly relationship between User and Roles. Use @JsonIgnore on roles in User entity. Commented Nov 5, 2017 at 6:43
  • @AbdullahKhan: thanks, it works now Commented Nov 8, 2017 at 14:01

1 Answer 1

0

The error is because of the bi-directional relationship between User and Roles.

Use @JsonIgnore on roles in User entity.

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.