У меня есть объект 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