Java Springboot@EntityScan不工作

Java Springboot@EntityScan不工作,java,spring-boot,Java,Spring Boot,我有一个Springboot应用程序,我的实体模型与作为依赖项包含的主应用程序分离 java位于这个包com.a.b.c中 @SpringBootApplication @EntityScan("com.a.b") public class Applciation { public static void main(String args[]) { SpringApplication.run(Applciation.class, args); } }

我有一个Springboot应用程序,我的实体模型与作为依赖项包含的主应用程序分离

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:不是托管类型:类。我为此花了无数个小时

我将把你的问题分成3部分(我将使用“实体项目”和“spring项目”来指包含实体类的项目和试图合并实体类的主项目):

第1部分,共3部分:确保实体类在实体项目中公开

在实体项目的根目录下创建配置

package com.a.b

@Configuration
@Import ({Entity1.class, Entity1Repo.class, Entity1Key.class, 
  Entity2.class, ... })
class EntityConfig {}
第2部分,共3部分:确保实体类位于spring项目的类路径中

因为您使用的是SpringBoot,所以我确信您使用的是maven(或Gradle)

无论如何,请确保您可以使用实体类安装实体项目:

cd /path/to/entity-project/
mvn install -DskipTests 
在spring项目的maven文件中,包含到实体项目中

第3部分(共3部分):使用EntityScan注释

这只是我的爱好,但我更喜欢使用BasePackageClass而不是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);
    }
}

中提琴

我可以和你联系。我为此花了无数个小时

我将把你的问题分成3部分(我将使用“实体项目”和“spring项目”来指包含实体类的项目和试图合并实体类的主项目):

第1部分,共3部分:确保实体类在实体项目中公开

在实体项目的根目录下创建配置

package com.a.b

@Configuration
@Import ({Entity1.class, Entity1Repo.class, Entity1Key.class, 
  Entity2.class, ... })
class EntityConfig {}
第2部分,共3部分:确保实体类位于spring项目的类路径中

因为您使用的是SpringBoot,所以我确信您使用的是maven(或Gradle)

无论如何,请确保您可以使用实体类安装实体项目:

cd /path/to/entity-project/
mvn install -DskipTests 
在spring项目的maven文件中,包含到实体项目中

第3部分(共3部分):使用EntityScan注释

这只是我的爱好,但我更喜欢使用BasePackageClass而不是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);
    }
}

中提琴

在类似的帖子上查看我的答案,希望它能帮助你:在类似的帖子上查看我的答案,希望它能帮助你: