У меня есть это перечисление:
public enum Days implements Serializable {
MONDAY,
TUESDAY,
WEDNESDAY,
...
}
Я хочу использовать его в классе Store:
public class Store{
private integer id_store;
private String name;
private Days days_visit;
}
Дело в том, что days_visit
должен быть массивом, потому что это может быть более одного дня; на стороне базы данных тип Days является типом days:
CREATE TYPE schema.days AS ENUM
(MONDAY,
TUESDAY,
WEDNESDAY,
...);
И таблица Stores имеет массив'days´
days_visit schema.days[],
Как можно сериализовать это в JSON? JSON Я пытался это:
{"id_store":"1", "name":"The Store", "days_visit":["MONDAY", "FRIDAY"]}
Но я получаю эту ошибку:
com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of org.domain.Days
out of START_ARRAY token
at [Source: io.undertow.servlet.spec.ServletInputStreamImpl@5c2a7de1; line: 1, column: 168] (through reference chain:
org.Stores["days_visit"])
Если я объявлю days_visit следующим образом в моем классе:
public class Store{
private integer id_store;
private String name;
private Days[] days_visit;
}
Я получаю эту ошибку при развертывании в Wildfly:
[2020-01-28 11:42:09,970] Artifact app:war: Error during artifact deployment. See server log for details.
[2020-01-28 11:42:09,970] Artifact app:war: java.lang.Exception: {"WFLYCTL0080: Failed services" => {"jboss.persistenceunit.\"app.war#org\"" => "javax.persistence.PersistenceException: [PersistenceUnit: org_app] Unable to build Hibernate SessionFactory
Caused by: javax.persistence.PersistenceException: [PersistenceUnit: org.app] Unable to build Hibernate SessionFactory
Caused by: org.hibernate.MappingException: Unable to instantiate custom type: org.hibernate.type.EnumType
Caused by: java.lang.ClassCastException: class [Lpy.org.app.domain.Days;"}}
Что-то мне не хватает?