Springboot @EntityScan не работает - PullRequest
0 голосов
/ 29 июня 2018

У меня есть приложение Springboot, и моя сущностная модель отделена от моего основного приложения, включенного как зависимость.

my Application.java находится в этом пакете com.a.b.c

@SpringBootApplication
@EntityScan("com.a.b")
public class Applciation
{
    public static void main(String args[])
    {
         SpringApplication.run(Applciation.class, args);
    }
}

и моя модель сущности находится в другом проекте внутри этого пакета com.a.b

Но я получаю сообщение об ошибке: Причина: java.lang.IllegalArgumentException: Не управляемый тип: класс

1 Ответ

0 голосов
/ 29 июня 2018

Я могу относиться к вам. Я потратил бесчисленные часы на это.

Я разделю ваш вопрос на 3 части (я буду использовать «entity-project» и «spring-project» для ссылки на проект, содержащий классы сущностей и основной проект, пытающийся включить классы сущностей):

Часть 1 из 3: Убедитесь, что ваши классы сущностей представлены в entity-проекте.

Создание конфигурации в корне объекта-проекта

package com.a.b

@Configuration
@Import ({Entity1.class, Entity1Repo.class, Entity1Key.class, 
  Entity2.class, ... })
class EntityConfig {}

Часть 2 из 3: Убедитесь, что ваши классы сущностей находятся в пути к классам Spring-Project.

Поскольку вы используете SpringBoot, я уверен, что вы используете maven (или Gradle).

В любом случае, убедитесь, что вы установили сущность-проект с классами сущностей:

cd /path/to/entity-project/
mvn install -DskipTests 

В файле maven проекта Spring включите объект-проект.

Часть 3 из 3: Используйте аннотацию EntityScan.

Это только мой вкус, но я предпочитаю использовать basePackageClasses вместо basePackage.

@SpringBootApplication
@EntityScan(basePackageClasses = {Entity1.class}) 
// use basePackageClasses to avoid type errors
@Import({com.a.b.EntityConfig.class}) // this is what you are missing
public class Applciation
{
    public static void main(String args[])
    {
         SpringApplication.run(Applciation.class, args);
    }
}

Viola!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...