H2 - Произошла недопустимая операция отражающего доступа

После запуска моего приложения с весенней загрузкой появляется предупреждение:

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.hibernate.internal.util.ReflectHelper (file:/C:/Users/xxxx/.m2/repository/org/hibernate/hibernate-core/5.3.7.Final/hibernate-core-5.3.7.Final.jar) to field java.lang.String.coder
WARNING: Please consider reporting this to the maintainers of org.hibernate.internal.util.ReflectHelper
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

В результате моя таблица имеет столбец Coder вместо фактического имени, такого как моя сущность -

@Entity
public class TaxValuesEntity {

    @EmbeddedId
    public String countryCodePK;
    public double taxValue;
    public Timestamp creationAt;
    public Timestamp modifedAt;

    protected TaxValuesEntity() {
    };

    public TaxValuesEntity(String countryCode, double taxValue, Timestamp creation, Timestamp modifed) {
        this.countryCodePK = countryCode;
        this.taxValue = taxValue;
        this.creationAt = creation;
        this.modifedAt = modifed;
    }
    //getters & setters ...
};

Благодарим за любую помощь и, пожалуйста, прокомментируйте ниже, если требуется больше кода.

Какая версия загрузки Java и Spring?

user10639668 16.12.2018 12:44

Открыл JDK 11, забыл написать.

Itsik Mauyhas 16.12.2018 12:45
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
2
2 291
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Замените EmbeddedId на Id следующим образом:

import javax.persistence.Id;

@Entity
public class TaxValuesEntity {

    @Id
    public String countryCodePK;

EmbeddedId предназначен для составного первичного ключа.

Ответ принят как подходящий

У меня была аналогичная проблема с JDK11 и Mockito. Исправление заключалось в использовании последней версии Mockito. Возможно, проверьте версию Hibernate и текущий статус поддержки JDK 11. При быстром поиске нашел это использование гибернации с jdk11 и спящий режим версии 5.4

После изменения проекта на JDK 8 ошибка разрешилась. Буду ждать обновлений JDK 11.

Itsik Mauyhas 16.12.2018 13:02

Вроде 5.4 стабильна и поддерживает, если хочется поэкспериментировать :).

ctenescu 16.12.2018 13:12

Не совсем, пока отложу этот выпуск, спасибо.

Itsik Mauyhas 16.12.2018 13:14

Другие вопросы по теме