Из исходного кода 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)
.
Наконец, в следующий раз, пожалуйста, попробуйте скопировать и вставить код в пост вместо экранной шапки, которые помогают нам прочитать / скопировать код и понять вашу проблему.