Recordy w RestController

Recordy w RestController
AP
  • Rejestracja:około 6 lat
  • Ostatnio:3 miesiące
  • Postów:164
0

Wiem, że Java 14 jeszcze nie wyszła i jest dostępna tylko jako EAP, ale moze jest sposób żeby używać recordy w controllerach Springowych?

Kopiuj
    @GetMapping
    List<MyRecord> getRecords() {
        return List.of(new MyRecord(1L, "test", "test"));
    }

    public record MyRecord(Long id, String content, String answer)  {
    }

Obecnie strzał pod ten endpoint powoduje

Kopiuj
com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class com.example.MyRecord and no properties discovered to create BeanSerializer 
edytowany 2x, ostatnio: AngryProgrammer
Charles_Ray
  • Rejestracja:około 17 lat
  • Ostatnio:około 21 godzin
  • Postów:1875
2

Obawiam się, że nie dałeś czasu Pivotalowi/Jacksonowi na zaadoptowanie się do nowej konstrukcji :) popatrz w bytecode czy tam nie ma jakichś czarów, których nie rozumie Jackson

EDIT: no widzisz: https://github.com/FasterXML/jackson-future-ideas/issues/46


”Engineering is easy. People are hard.” Bill Coughran
edytowany 1x, ostatnio: Charles_Ray
AP
Mialem po prostu nadzieje że ktoś już napisał jakieś obejście czy coś i jakoś się to da użyć :D
Charles_Ray
No jest: @JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY) albo static record MyRecord(@JsonProperty("id") int id, @JsonProperty("name")String name) { } wszystko jest w tym issue
EL
Pytanie tylko czy to na pewno jest dobra praktyka i czy póki nie ma jakiegoś oficjalnego rozwiązania nie lepiej korzystać z normalnych klas w przypadku DTO rzucanych przez controllery?
P2
  • Rejestracja:ponad 5 lat
  • Ostatnio:prawie 5 lat
  • Postów:84
0

Fajna sprawa z tymi rekordami, na razie zajawka do Javy 14 więc trzeba na LTS-a 17 poczekać by to wykorzystac na powaznie

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.