第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

不同包中的實體創(chuàng)建“引用未知實體”(多數(shù)據(jù)源場景)

不同包中的實體創(chuàng)建“引用未知實體”(多數(shù)據(jù)源場景)

蕪湖不蕪 2021-12-10 15:26:42
我目前有 2 個不同的數(shù)據(jù)源配置可以正常工作。但是因為實體越來越多,我想把它們放在不同的包裝上。這是文件夾結(jié)構(gòu)和數(shù)據(jù)庫配置。本地數(shù)據(jù)庫配置。(2張)文件夾結(jié)構(gòu)是這樣的發(fā)生的異常:org.springframework.beans.factory.BeanCreationException:在類路徑資源 [com/bennusoft/merlin/robot/business/database/LocalDBConfig.class] 中定義名稱為“l(fā)ocalEntityManager”的 bean 創(chuàng)建時出錯:調(diào)用 init 方法失敗;嵌套異常是 org.hibernate.AnnotationException: @OneToOne 或 @ManyToOne on com.bennusoft.merlin.robot.business.database.a.BilyonerBahisSoccerSpecialDatabase.iddaaGeneralDatabases 引用了一個未知實體:com.bennusoft.merlin.robot.business.database.IddaGeneralDatabase如果 BilyonerBahisSoccerSpecialDatabase 在同一個包中,它會簡單地運行沒有問題。但是當(dāng)它低于包時,就會發(fā)生異常。不知何故,在我看來,從 BilyonerBahisSoccerSpecialDatabase 到上層包沒有看到。但我不知道我實際上可以在哪里。我怎樣才能使這個工作與不同的包一起工作?更新 1: 如果我只使用 .packages(IddaaGeneralDatabase.class) 保留在 factorybean 中,問題就解決了。所以我的問題實際上正在改變。為什么添加不同的包會破壞它?
查看完整描述

1 回答

?
不負(fù)相思意

TA貢獻1777條經(jīng)驗 獲得超10個贊

來自EntityManagerFactoryBuilder.java Builder.packages(Class<?>... basePackageClass)方法的源代碼


    public Builder packages(Class<?>... basePackageClasses) {

        Set<String> packages = new HashSet<>();

        for (Class<?> type : basePackageClasses) {

            packages.add(ClassUtils.getPackageName(type));

        }

        this.packagesToScan = StringUtils.toStringArray(packages);

        return this;

    }

以及如何調(diào)用構(gòu)建器方法


  return builder.dataSource(mysqlDataSource())

                .properties(hibernateProperties())

                .packages(IddaaGeneralDatabase.class)

                .packages(BilyonerBahisSoccerSpecialDatabase.class)

                .....

您調(diào)用包方法的方式不正確。每次調(diào)用packages方法this.packagesToScan的Builder將被覆蓋。因此,在您第二次調(diào)用之后,this.packagesToScan現(xiàn)在com.bennusoft.merlin.robot.business.database.a和包com.bennusoft.merlin.robot.business.database中的類不會被掃描。另外,在你更新后,第二個調(diào)用被移除,this.packagesToScan保留為com.bennusoft.merlin.robot.business.database,這個包和子包被掃描,因此問題解決了。


如果您需要添加其他類,該類的一個包不是其他類的子包,則可以調(diào)用builder.packages(ClassA.class, ClassB.class)。


最后,下次請嘗試將代碼復(fù)制并粘貼到帖子而不是屏幕帽,這有助于我們閱讀/復(fù)制代碼并了解您的問題。


查看完整回答
反對 回復(fù) 2021-12-10
  • 1 回答
  • 0 關(guān)注
  • 172 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號