public interface SurveyRepository extends JpaRepository<Survey, Long> {}
-
@Entity
public class Survey {
@Id
@GeneratedValue
private Long id;
@NonNull
private String title;
private String content;
private String date;
List<Field> fields; //ругается на List
}
С фронта приходит следующий json:
emptyItem = {
title: 'Hello',
content: 'heeell no',
fields: [
{
id: 1,
title: '',
voted: 0
},
{
id: 2,
title: '',
voted: 0
}
]
};
-
Проблема с сохранением поля fields: Как будет правильнее это исправить?
Думаю можно переопределить метод save() в SurveyRepository (возможно есть какие то стандартные способы).
Первый вариант создать в БД дополнительную таблицу для хранения Field
и связать с Survey через one-to-many
Второй вариант хранить список как json в БД
Анотирвать поле кастомным конвертером
@Convert(converter = CustomConverter.class)
private List<Field> fields;
Сам конвертер
public class CustomConverter implements AttributeConverter<List<Field>, String> {
private ObjectMapper objectMapper = new ObjectMapper();
@Override
public String convertToDatabaseColumn(List<Field> object) {
try {
return objectMapper.writeValueAsString(object);
} catch (JsonProcessingException e) {
e.printStackTrace();
return "";
}
}
@Override
public List<Field> convertToEntityAttribute(String data) {
try {
return objectMapper.readValue(data, new TypeReference<List<Field>>() {});
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Хочу использовать HikariCP в своем приложении на спринге, но при создании DataSource возникает исключение
Как сделать чтоб после перезапуска приложения, данные добавленные в текущей сессии сохранились и были загружена в следующий разЯ так понимаю...
Не удается запустить параллельно два Observable через merge