1 回答
TA贡献1777条经验 获得超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;
}
以及如何调用构建器方法
return builder.dataSource(mysqlDataSource())
.properties(hibernateProperties())
.packages(IddaaGeneralDatabase.class)
.packages(BilyonerBahisSoccerSpecialDatabase.class)
.....
您调用包方法的方式不正确。每次调用packages方法this.packagesToScan的Builder将被覆盖。因此,在您第二次调用之后,this.packagesToScan现在com.bennusoft.merlin.robot.business.database.a和包com.bennusoft.merlin.robot.business.database中的类不会被扫描。另外,在你更新后,第二个调用被移除,this.packagesToScan保留为com.bennusoft.merlin.robot.business.database,这个包和子包被扫描,因此问题解决了。
如果您需要添加其他类,该类的一个包不是其他类的子包,则可以调用builder.packages(ClassA.class, ClassB.class)。
最后,下次请尝试将代码复制并粘贴到帖子而不是屏幕帽,这有助于我们阅读/复制代码并了解您的问题。
添加回答
举报