Ответ 1
Я думаю, что вы должны использовать Lombok в качестве уровня класса вместо уровня поля.
@Entity
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class Employee implements Serializable {}
Это может решить вашу проблему.
У меня есть простое веб-приложение Spring Boot. Я пытаюсь получить некоторые данные с сервера. Контроллер возвращает коллекцию, но браузер получает пустой JSON - количество фигурных скобок равно количеству объектов с сервера, но его содержимое пусто.
@RestController
public class EmployeeController {
@Autowired
private EmployeeManagerImpl employeeManagerImpl;
@RequestMapping(path="/employees", method = RequestMethod.GET)
public Iterable<Employee> getAllEmployees() {
Iterable<Employee> employeesIterable = employeeManagerImpl.getAllEmployees();
return employeesIterable;
}
}
Метод запускается, и браузер показывает:
Больше ничего в консоли. Есть идеи?
ОБНОВЛЕНИЕ: Employee.java
@Entity
public class Employee implements Serializable{
private static final long serialVersionUID = -1723798766434132067L;
@Id
@Getter @Setter
@GeneratedValue
private Long id;
@Getter @Setter
@Column(name = "first_name")
private String firstName;
@Getter @Setter
@Column(name = "last_name")
private String lastName;
@Getter @Setter
private BigDecimal salary;
public Employee(){
}
}
Я думаю, что вы должны использовать Lombok в качестве уровня класса вместо уровня поля.
@Entity
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class Employee implements Serializable {}
Это может решить вашу проблему.
У вас есть конвертер в проекте, который преобразует JAVA-объекты в JSON. Если нет, вам нужно. Попробуйте использовать Jackson в своем проекте.
Как только банки Jackson импортируются в проект, сервлет диспетчера должен быть ниже:
<beans:bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<beans:property name="messageConverters">
<beans:list>
<beans:ref bean="jsonMessageConverter" />
</beans:list>
</beans:property>
</beans:bean>
<!-- Configure bean to convert JSON to POJO and vice versa -->
<beans:bean id="jsonMessageConverter"
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
</beans:bean>
Попробуйте добавить @ResponseBody к объявлению типа возвращаемого метода метода REST в сигнатуре метода. Это должно быть сделано, если вы используете стандартный проект загрузки Spring.