首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring上下文索引器导致hibernate实体映射问题

Spring上下文索引器导致hibernate实体映射问题
EN

Stack Overflow用户
提问于 2021-05-19 19:19:32
回答 1查看 35关注 0票数 0

我有一个在多个模块之间拆分的项目,每个模块都作为maven依赖项导入到主模块中。持久性实体可以位于任何项目中,但位于相同的包中。我一直试图通过使用spring-context-indexer来改善应用程序的启动时间,但这似乎导致了检测实体的问题。我的@EntityScan配置如下:

代码语言:javascript
复制
@EntityScan(basePackages = {"com.botscrew", "com.botscrew.demoadminpanel.entity.jpa","com.botscrew.admin.entity"})

奇怪的是,错误看起来像这样

代码语言:javascript
复制
org.hibernate.AnnotationException: @OneToOne or @ManyToOne on com.botscrew.admin.entity.Bot.amioWhatsAppConfigs references an unknown entity: com.botscrew.admin.entity.services.configs.AmioWhatsAppConfigs

本质上,这两个实体位于相同的包下,但Bot实体已被解析,而AmioWhatsAppConfigs未被解析。

应用程序在没有spring索引器的情况下启动得非常好。

我使用的是spring boot 2.2.1版本

实体类:

代码语言:javascript
复制
@Getter
@Setter
@Builder
@Entity
@ToString(of = {"id", "name"})
@AllArgsConstructor
@Table(name = "admin_bot")
@DiscriminatorValue("Bot")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public class Bot {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    @Convert(converter = EmojiConverter.class)
    private String name;

    private Integer timezone;

    private String greetingText;

    @Column(columnDefinition = "tinyint(1) default 1")
    private Boolean active;

    @Column(unique = true, updatable = false, nullable = false)
    private String publicIdentifier;

    @OneToOne(fetch = FetchType.LAZY)
    private PersistentMenuEntity persistentMenuEntity;

    //TODO FetchType.LAZY
    @OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
    @JoinColumn(name = "widget_id")
    private Widget widget;

    //TODO FetchType.LAZY
    @OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
    private MessengerConfigs messengerConfigs;

    //TODO FetchType.LAZY
    @OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
    private AmioWhatsAppConfigs amioWhatsAppConfigs;

    @OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
    private TwilioConfigs twilioConfigs;

    @OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
    private DialogflowConfigs dialogflowConfigs;

    @OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
    private ChatbaseConfig chatbaseConfig;

    @OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
    private SupportSettings supportSettings;

    @OneToMany
    private Set<Tag> tags;

    @OneToMany(mappedBy = "bot")
    private List<Broadcast> broadcasts;

    @ManyToMany(fetch = FetchType.EAGER)
    @JoinTable(name = "admin_bot_features",
        joinColumns = {@JoinColumn(name = "bot_id")},
        inverseJoinColumns = {@JoinColumn(name = "feature_id")})
    private Set<Feature> features;

    public Bot() {
        this.active = true;
    }

    public Bot(String name, DefaultWidgetProperties defaultWidgetProperties) {
        this.publicIdentifier = UUID.randomUUID().toString();
        this.chatbaseConfig = new ChatbaseConfig();
        this.amioWhatsAppConfigs = new AmioWhatsAppConfigs();
        this.timezone = 0;
        this.name = name;
        this.active = true;
        this.messengerConfigs = new MessengerConfigs();
        this.dialogflowConfigs = new DialogflowConfigs();
        this.widget = new Widget(defaultWidgetProperties);
        this.supportSettings = new SupportSettings(false);
    }
    
}


@Getter
@Setter
@Entity
@Accessors(chain = true)
@ToString
@Table(name = "admin_amio_whatsapp_configs")
public class AmioWhatsAppConfigs implements AmioWhatsAppBot {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String channelId;
    private String accessToken;
    private String secret;
}

请帮帮忙

EN

回答 1

Stack Overflow用户

发布于 2021-05-19 19:28:53

我正在编辑我的答案,请检查示例

代码语言:javascript
复制
@EntityScan(basePackages = {"com.botscrew", 
"com.botscrew.demoadminpanel.entity.jpa","com.botscrew.admin.entity.services.configs.*"})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67602224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档