H2 - произошла недопустимая операция доступа с отражением - PullRequest
0 голосов
/ 16 декабря 2018

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

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 ...
};

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

Ответы [ 2 ]

0 голосов
/ 16 декабря 2018

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

0 голосов
/ 16 декабря 2018

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

import javax.persistence.Id;

@Entity
public class TaxValuesEntity {

    @Id
    public String countryCodePK;

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

...