当前位置: 首页 > 知识库问答 >
问题:

Springboot@EntityScan不工作

墨星鹏
2023-03-14

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

我的Application.java位于此包中

@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个答案

常飞翼
2023-03-14

我能理解你。我已经为此花费了无数的时间。

我将把你的问题分成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-project的maven文件中,将。

第 3 部分(共 3 部分):使用实体扫描注释。

这只是我的口味,但我更喜欢使用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);
    }
}

维奥拉。

 类似资料:
  • 我正在学习Spring Boot来构建应用程序。我试图用不同包中的控制器作为应用程序来构建我的第一个Spring Boot应用程序。Tomcat实例出现,但请求没有到达为URI注册的RestController。 以下是控制器类: 以下是应用程序类: Pom.xml tomcat启动时的日志: 我添加了基本包扫描,甚至尝试了注释,但当我点击URL(http://localhost:8080/abc

  • 我已经将spring boot嵌入式tomcat服务器中的保持活动超时设置为30秒。因此,我在应用程序中使用下面的内容。JAVA 然后我从我的Rest控制器Hibernate一个请求线程40秒。但是当我通过postman发出请求时,它成功返回HTTP状态代码200,而不是返回网关超时错误。 我尝试setConnectionTimeout和setKeepAliveTimeout,但它不起作用。 我错

  • 我是一个新的springboot和我正在考虑它为一个新的项目。在测试其功能时,我使用@Transactional注释总是失败。 我创建了一个小的MySql数据库,并将其连接到该数据库,设置此application.properties文件: 为什么?

  • 我在我的模型中使用LocalDateTime,在包括LocalDateTimeDeserializer之后,将bean字段转换为 包括 属性在SpringBoot的应用程序中。属性文件,应用程序最终能够反序列化JSON并正确显示如下内容:, 但是,当我进行测试时,它会忽略WRITE_DATES_AS_TIMESTAMPS标志,我猜它会为上面相同的字符串日期生成一个输出, 请注意,在测试资源文件夹中

  • controller.java UserServiceImpl.java 我得到了这个错误 应用程序启动失败 描述: 我使用的SpringBoot版本:2.1.0.发行版

  • 我无法在注释中使用方法。还有给出。我错过了什么?尽管工作正常。 我正在从数据库中为用户分配权限。