Как сделать все пакеты видимыми для Hibernate? - PullRequest
0 голосов
/ 21 октября 2018

Я делаю приложение Maven, используя загрузочную среду Spring.Я также использую технологию Hibernate ORM для сохранения объектов в базе данных через Postgres.Проблема, с которой я сталкиваюсь, это ошибка Unknown entity: ca.mcgill.ecse321.model.Vehicle, потому что Hibernate не может "увидеть" этот класс.Фрагмент ниже показывает мою иерархию классов и мой файл pom.xml.Есть ли способ заставить Hibernate искать модельные классы?Я не использую файл hibernate.cfg.xml.

Иерархия классов

Pom.xml

<groupId>com.example</groupId>
<artifactId>RideSharing-backend</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>RideSharing</name>
<description>Demo project for Spring Boot</description>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.6.RELEASE</version>
    <relativePath /> <!-- lookup parent from repository -->
</parent>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>5.3.6.Final</version>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>


</project>

1 Ответ

0 голосов
/ 21 октября 2018

Есть несколько вещей:

  1. Вы можете удалить зависимость Hibernate от pom как JPA, как по умолчанию зависимость Hibernate в нем.Поэтому удалите ниже:

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>5.3.6.Final</version>
    </dependency>
    
  2. Если ваш основной класс находится здесь в корневом пакете ca.mcgill.ecse321, тогда @SpringBootApplication автоматически настроит ваши сущности.

  3. Если у вас нет основного класса в корневом пакете, то в вашем основном классе сканируйте объекты по аннотации, чтобы указать имя вашего пакета:

    @EntityScan("ca.mcgill.ecse321.model")
    @SpringBootApplication
    public class MyApplication {
    
    }
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...