классы метамодели hibernate / jpa не включают все поля - PullRequest
1 голос
/ 22 июня 2019

У меня возникла эта супер раздражающая проблема с моим hibernate / jpa-приложением, которое я разрабатываю с использованием maven и редактирования в eclipse.

У меня настроено местоположение цели / метамодели в Свойства> Компилятор> Обработка аннотаций, и все работает нормально, за исключением одного класса, где класс метамодели содержит только идентификатор.

Вот сущность:

@Entity
public class User {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;

private String username;
private String password;

@Transient
private Authorization authorization;
// getters/setters omitted, but I do have them in the entity class
}

, а вот класс метамодели

@Generated(value="Dali", date="2019-06-22T11:49:45.797-0400")
@StaticMetamodel(User.class)
public class User_ {
     public static volatile SingularAttribute<User, Integer> id;
}

Эта проблема only возникает в классе User,все остальные классы в порядке.Я получаю ошибки компиляции в моем DAO, где я пытаюсь получить пользователя с именем пользователя / pw, и эти поля не существуют в классе метамодели.

Есть идеи, что могло бы вызвать это?Работает на Linux, компилятор установлен на 1,8.спасибо

обновление

В итоге я решил ее, добавив запись для сущности в файле persistence.xml

<class>com.mypack.model.User</class>

Я прошел процесс создания сущности ивыполнять сохранение, обновление, удаление и получение по идентификатору функций без использования записей persistence.xml.Я думаю, что начал с нескольких, обнаружил, что они мне не нужны, и прокомментировал их.

Теперь, когда я пытаюсь создать построитель критериев / корень / запрос и т. Д., Я сталкиваюсь с этой проблемой.Добавление объекта в файл persistence.xml, похоже, разрешило его.

1 Ответ

0 голосов
/ 22 июня 2019

Я думаю, это может быть ошибка Дали-генератора.Я попытался с hibernate-jpamodelgen через обычный плагин maven, и он отлично работает.

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

<build>
  <plugins>
    <plugin>
      <artifactId>maven-compiler-plugin</artifactId>
      <configuration>
        <source>1.8</source>
        <target>1.8</target>
        <compilerArguments>
          <processor>org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor</processor>
        </compilerArguments>
      </configuration>
    </plugin>
  </plugins>
</build>

<dependencies>
  <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-jpamodelgen</artifactId>
    <version>5.4.3.Final</version>
  </dependency>
</dependencies>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...