Можно ли отфильтровать и создать новый список из двух других списков и вернуть его через API в Spring BootJAVA

Программисты JAVA общаются здесь
Anonymous
Можно ли отфильтровать и создать новый список из двух других списков и вернуть его через API в Spring Boot

Сообщение Anonymous »

Не совсем уверен, кто издает мой вопрос, но это больше просить совета. У меня есть предприятие танка, у которой будет список испытательных сущностей, а также список перечислений. Я хочу вернуться на переднюю часть нового списка, который будет объединять и отфильтровать этих двух других. Пример: < /p>
Tank 1 имеет список из 20 тестов между этими относится к 3 параметрам различных (параметры - это перечисление). Танк 1 имеет список всех (в настоящее время 9, но это увеличится, скорее всего) перечислены (параметры). Я бы хотел, чтобы Tank 1 вернулся на переднюю часть, похожую на это в JSON: < /p>
{
"id": 1,
"name": "Tank",
"parameters": [
{
"id": 1,
"name": "Nitrate",
"tests": [
{
"id":"1",
"value":"0.5",
"testDate":"2023-12-23T04:20:04+0000"
},
{
"id":"2",
"value":"0.1",
"testDate":"2023-12-24T20:00:54+0000"
},
{
"id":"3",
"value":"2.5",
"testDate":"2023-12-25T20:38:02+0000"
}
]
}
]
}
< /code>
Я бы взял перечисление и отфильтровал тесты. Я не совсем уверен, что это возможно или как попытаться сделать это, поэтому интересно, может ли кто -нибудь помочь направить мне правильное направление. Спасибо! < /P>
Редактировать: добавленная сущность бака, контроллер резервуара, enum, тестовый объект. Некоторые из кода не совсем полностью настроены для того, что я прошу, поскольку я хотел посмотреть, как именно создать новый объект и передать его через API. < /P>
@Entity
@Table(name = "tanks")
public class Tank implements Comparable
{

@Id
@Column(name = "tank_id")
private Integer id;
@Column(name = "name")
private String name;
@Column(name = "unit")
private String unit;
@Column(name = "size")
private double size;
@Column(name = "actual")
private double actual;
@Column(name = "started")
private Date started;
@OneToMany(mappedBy = "tank", cascade = CascadeType.ALL)
private List tests;
@OneToMany(mappedBy = "tank", cascade = CascadeType.ALL)
private List waterChanges;
@OneToMany(mappedBy = "tank", cascade = CascadeType.ALL)
private List refLines;
private EnumSet params = EnumSet.allOf(Params.class);

}
< /code>
@Entity
@Table(name = "tests")
public class Test implements Comparable
{

@Id
@Column(name = "test_id")
private Integer id;

@Column(name = "param_value")
private double value;
@Column(name = "test_date")
private Date testDate;
@ManyToOne
@JoinColumn(name = "tank_id", referencedColumnName = "tank_id", nullable = false)
private Tank tank;

}
< /code>
public enum Params
{
NITRATE(1, "NO3", "ppm"),
PHOSPHATE(2, "PO", "ppm"),
ALKALINITY(3, "KH", "dKH"),
CALCIUM(4, "Ca", "ppm"),
MAGNESIUM(5, "Mg", "ppm"),
NITRITE(6, "NO2", "ppm"),
AMMONIA(7, "NH3", "ppm"),
SALINITY(8, "Sal", "ppt"),
PH(9, "pH", "pH");

private final int id;
private final String shorthand;
private final String measurement;

private Params(int id, String shorthand, String measurment)
{
this.id = id;
this.shorthand = shorthand;
this.measurement = measurment;
}

public int getId()
{
return id;
}

public String getShorthand()
{
return shorthand;
}

public String getMeasurement()
{
return measurement;
}

}
< /code>
@RestController
@RequestMapping("api/tanks")
@CrossOrigin
public class TankController
{

private final TankService tankService;

public TankController(TankService tankService)
{
this.tankService = tankService;
}

@GetMapping
public List getTanks()
{
return tankService.getTanks();
}

@GetMapping("{tankId}")
public Tank getTank(@PathVariable Integer tankId)
{
return tankService.getTank(tankId);
}

@GetMapping("{tankId}/tests")
public List getTankTests(@PathVariable Integer tankId)
{
return tankService.getTankTests(tankId);
}

@PostMapping
@ResponseStatus(HttpStatus.CREATED)
public Tank createTank(@Valid @RequestBody Tank tank)
{
return tankService.createTank(tank);
}

@DeleteMapping("{tankId}")
public void deleteTank(@PathVariable Integer tankId)
{
tankService.deleteTank(tankId);
}

@PutMapping("{tankId}")
public Tank updateTank(@RequestBody Tank tank)
{
return tankService.updateTank(tank);
}

}


Подробнее здесь: https://stackoverflow.com/questions/794 ... d-return-i

Вернуться в «JAVA»