首页 > 解决方案 > 使用包含 bean 的外部 JAR 启动 Spring Boot 应用程序时出错

问题描述

我有一个从 Spring Initializer 创建的 Spring Boot 应用程序,我添加了一个包含 bean 的外部 JAR(手动在构建路径库中)。bean 用@Entity 和@json 注释...问题是在启动应用程序时出现以下错误。如果我将 bean 作为一个简单的 bean 复制到项目中,项目将正确启动。

创建名为“userRepository”的 bean 时出错:调用 init 方法失败;嵌套异常是 java.lang.IllegalArgumentException: Not a managed type: class org.xxxxxxx.domain.User

非常感谢任何帮助 

这是来自 JAR 的 bean 的示例。


    package org.xxxxxxx.domain;

import java.io.Serializable;
import java.sql.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
@Entity
@Table (name="userTable", uniqueConstraints=@UniqueConstraint(columnNames={"nom"}))
public class User implements Serializable {
    
    
    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    
    private Long id;
    @Column(name="nom", unique=true, nullable=false)
    private String name;
    private String motsdepasse;
    private String token;
    @ManyToOne
    private UserGroupe groupe;
    
//  @Column(columnDefinition="boolean default false")
    private boolean desactive;
    
//  @Column(columnDefinition="boolean default false")
    private boolean finalPwd;
    
    private boolean deleted;
    
    private Date datePassword;
    
    @ManyToOne
    private Branch branche;
     //getters + setters

标签: javaspring-boothibernate

解决方案


默认情况下,将搜索主配置类下的所有包(使用@EnableAutoConfiguration 或@SpringBootApplication 注释的包)。您可以使用 @EntityScan 注释自定义实体扫描位置:

春季文档


推荐阅读