У меня есть базовый загрузочный API Spring с контроллером объектов, содержащим отображение GET, возвращающее один экземпляр объекта. Объект не имеет сопоставленных отношений, и все поля имеют примитивные типы данных.
Тем не менее, при вызове API он будет возвращать один случайный экземпляр из базы данных бесконечное число раз.
Проблема возникает только в том случае, если функция getAll () не имеет параметров в Контроллере и Классе объекта.
- Объект:
@Entity
@Table(name = "TABLE_CAR")
public class ObjCar implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "INDEX_id_seq")
@SequenceGenerator(name = "INDEX_id_seq", sequenceName = "INDEX_id_seq", allocationSize = 1)
@Column(name = "id")
private Integer id;
@Column(name = "name")
private String name;
public ArrayList<ObjCar> getAll(int uselessVariableCausingTroubleIfRemoved) {
@SuppressWarnings("rawtypes")
Query query = DB.s.createQuery("from " + this.getClass().getSimpleName() + " where active = :active");
query.setParameter("active", active);
ArrayList<ObjCar> cots;
cots = (ArrayList<ObjCar>) query.list();
return cots;
}
// auto generated getters and setters
}
- Контроллер, который работает
@RestController
public class ObjCarController {
@CrossOrigin
@RequestMapping(value = "/obj/ObjCar/get/all", method = RequestMethod.GET)
public ArrayList<ObjCar > getAll() throws Exception {
return new ObjCar().getAll(135);
}
}
- Контроллер, который не работает
@RestController
public class ObjCarController {
@CrossOrigin
@RequestMapping(value = "/obj/ObjCar/get/all", method = RequestMethod.GET)
public ArrayList<ObjCar > getAll() throws Exception {
return new ObjCar().getAll();
}
}