Я буду использовать домашних животных в качестве модели данных, чтобы продемонстрировать свою проблему. В магазине домашних животных есть разные типы домашних животных.
Когда магазин создан со смешанными типами домашних животных, я получаю исключение.
[{"type":"cat","sound":"lala","color":"black"},{"type":"dog","bread":"pit","color":"brown"}]";
используется: java.lang.IllegalArgumentException: данный массив байтов
не может быть преобразован в объект Json... еще 134 Причина:
com.fasterxml.jackson.databind.exc.InvalidTypeIdException: не удалось
разрешить идентификатор типа 'cat' как подтип
com.test.Dog: Класс
com.test.Cat не является подтипом
com.test.Dog at
[Источник:
(byte[])"
строка: 1, столбец: 119] (через цепочку ссылок:
java.util.ArrayList[1]) at
app//com.fasterxml.jackson.databind.exc.InvalidTypeIdException.from(InvalidTypeIdException.java:43)
Я понимаю, что у postgres есть проблемы с сохранением объектов разных типов. Есть ли способ решить эту проблему?
класс сущности:
@Entity
@NoArgsConstructor
@Data
@AllArgsConstructor
@TypeDef(name = "json", typeClass = JsonType.class)
@EntityListeners({
AuditingEntityListener.class
})
@Audited
public class StoreEntity implements Serializable {
@Id
private String id;
@NotNull
private String name;
@Valid
@Type(type = "json")
@Column(columnDefinition = "jsonb")
private List
list= new ArrayList();
}
объект данных
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME,
include = JsonTypeInfo.As.EXISTING_PROPERTY,
visible = true,
property = "type")
@JsonSubTypes({
@JsonSubTypes.Type(name = "cat", value = Cat.class),
@JsonSubTypes.Type(name = "dog", value = Dog.class),
@JsonSubTypes.Type(name = "Pig", value = Pig.class)
})
abstract class Pets {
private String type;
@JsonProperty("type")
private String type;
// getters, setters, toString
}
class Cat extends Pets {
}
class Dog extends Dogs {
}
Repository
public interface StoreEntityRepository
extends CrudRepository, JpaSpecificationExecutor {
}
Подробнее здесь: https://stackoverflow.com/questions/722 ... ls-on-save
Тип коллекции JPA Postgres jsonb с несколькими типами не удается сохранить ⇐ JAVA
Программисты JAVA общаются здесь
1764257067
Anonymous
Я буду использовать домашних животных в качестве модели данных, чтобы продемонстрировать свою проблему. В магазине домашних животных есть разные типы домашних животных.
Когда магазин создан со смешанными типами домашних животных, я получаю исключение.
[{"type":"cat","sound":"lala","color":"black"},{"type":"dog","bread":"pit","color":"brown"}]";
используется: java.lang.IllegalArgumentException: данный массив байтов
не может быть преобразован в объект Json... еще 134 Причина:
com.fasterxml.jackson.databind.exc.InvalidTypeIdException: не удалось
разрешить идентификатор типа 'cat' как подтип
com.test.Dog: Класс
com.test.Cat не является подтипом
com.test.Dog at
[Источник:
(byte[])"
строка: 1, столбец: 119] (через цепочку ссылок:
java.util.ArrayList[1]) at
app//com.fasterxml.jackson.databind.exc.InvalidTypeIdException.from(InvalidTypeIdException.java:43)
Я понимаю, что у postgres есть проблемы с сохранением объектов разных типов. Есть ли способ решить эту проблему?
класс сущности:
@Entity
@NoArgsConstructor
@Data
@AllArgsConstructor
@TypeDef(name = "json", typeClass = JsonType.class)
@EntityListeners({
AuditingEntityListener.class
})
@Audited
public class StoreEntity implements Serializable {
@Id
private String id;
@NotNull
private String name;
@Valid
@Type(type = "json")
@Column(columnDefinition = "jsonb")
private List
list= new ArrayList();
}
объект данных
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME,
include = JsonTypeInfo.As.EXISTING_PROPERTY,
visible = true,
property = "type")
@JsonSubTypes({
@JsonSubTypes.Type(name = "cat", value = Cat.class),
@JsonSubTypes.Type(name = "dog", value = Dog.class),
@JsonSubTypes.Type(name = "Pig", value = Pig.class)
})
abstract class Pets {
private String type;
@JsonProperty("type")
private String type;
// getters, setters, toString
}
class Cat extends Pets {
}
class Dog extends Dogs {
}
Repository
public interface StoreEntityRepository
extends CrudRepository, JpaSpecificationExecutor {
}
Подробнее здесь: [url]https://stackoverflow.com/questions/72261294/jpa-postgres-jsonb-collection-type-with-multiple-types-fails-on-save[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия