JSON не возвращает детали дочернего объекта для того же типа - PullRequest
0 голосов
/ 30 мая 2018

У меня есть объект JPA, который возвращается как ResponseEntity из конечной точки REST.Конечная точка возвращает коллекцию этой сущности - код ниже

public ResponseEntity<Collection<Employee>> getAllEmployees() {
Collection<Employee> returnedEmployees = employeeService.findAll();  
return new ResponseEntity<>(returnedEmployees, HttpStatus.OK);
}

Employee сущность имеет свойство modifiedByUser, которое имеет тип User.

Когда я вызываю конечную точкуон просто возвращает коллекцию, но единственная проблема в том, что только первый элемент в коллекции возвращает подробности о modifiedByUser, остальная часть элемента просто сопоставляет ему идентификатор.

образец ответа

[
{
"employeeId" : 1,
"firstName" : "John",
"lastName" : "Doe",
"modifiedByUser" : {
   "userId" : 1,
   "firstName" : "Admin"
},

{
"employeeId" : 2,
"firstName" : "Jane",
"lastName" : "Doe",
"modifiedByUser" : 1
}
]

Я хочу, чтобы свойство modifiedByUser во втором элементе также показывало полную информацию.

Employee.java

@Entity
@Table(name = "employee")
@Audited
public class Employee {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "employee_id")
    private int employeeId;

    @Column(name = "first_name")
    private String firstName;

    @Column(name = "last_name")
    private String lastName;

    @NotAudited
    @OneToOne
    @JoinColumn(name = "modified_by", referencedColumnName = "user_id", insertable = false, updatable = false)
    private User modifiedByUser;

// getters and setters 

User.java

    @Entity
    @JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "userId")
    @EntityListeners(AuditingEntityListener.class)
    @Table(name = "users")
    public class User implements Serializable {

        private static final long serialVersionUID = -74583759743985L;

        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        @Column(name = "user_id")
        private int userId;

        @Column(name = "first_name")
        private String firstName;
// getters and setters
...