1 回答

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ù)制代碼并了解您的問題。
添加回答
舉報