Spring mvc: eclipse link: была сделана попытка получить значение данных типа 'VARBINARY' из значения данных типа 'DATE' - PullRequest
0 голосов
/ 08 мая 2018

Я пытаюсь, среди прочего, сохранить запуски в базе данных Derby. Дата запуска имеет дату, и всякий раз, когда я пытаюсь вставить запуск в базу данных, я получаю эту ошибку

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is javax.persistence.RollbackException: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.6.4.qualifier): org.eclipse.persistence.exceptions.DatabaseException
        Internal Exception: java.sql.SQLDataException: An attempt was made to get a data value of type 'VARBINARY' from a data value of type 'DATE'.
        Error Code: 20000
        Call: INSERT INTO LAUNCH (ID, CUSTOMER, DATE, DETAILS, LANDINGATTEMPT, LINKTOMISSIONPATCH, NAME, ORBIT, PAYLOADNAMES, PAYLOADTYPES, TIME, LAUNCHPAD_ID, ROCKET_ID) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
        bind => [13 parameters bound]
        Query: InsertObjectQuery(domain.Launch@4027c222)

Хотя я указал, что это дата

@Column(columnDefinition = "date")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate date;

Я получаю запуски из остальных API, и вот как я их храню, но я почти уверен, что это не проблема, потому что я также получаю сообщение об ошибке при попытке вставить запуск вручную.

        transaction.begin();
        try {
            for (Launch launch : launchRestApi.getAllLaunches()) {
                entityManager.persist(launch);
            }
            transaction.commit();
        } catch(Exception e) {
            transaction.rollback();
        }

Когда я использую сервер Derby на моей машине, он работает, и я не получаю ошибок. Когда я подключаюсь к удаленной базе данных с IntelliJ, он также говорит, что столбец DATE хранится как DATE(10), поэтому я действительно понятия не имею, что его вызывает.

...