Как создать фабрику сеансов со смешанным HBM и аннотациями с помощью Spring? Ошибка: ссылка на несопоставленный объект.JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как создать фабрику сеансов со смешанным HBM и аннотациями с помощью Spring? Ошибка: ссылка на несопоставленный объект.

Сообщение Anonymous »

Я создаю SessionFactory следующим образом (как предложено здесь: https://coderanch.com/t/654369/database ... te-cfg-xml):

Код: Выделить всё

Configuration configuration = new Configuration();
addAnnotatedClassesFromConfiguredPackages(configuration);
final StandardServiceRegistry registry = new StandardServiceRegistryBuilder()
.configure() // configures settings from hibernate.cfg.xml
.build();
try {
LOGGER.info("Creating session factory");
sessionFactory = new MetadataSources( registry ).buildMetadata().buildSessionFactory();
}
catch (Exception e) {
// The registry would be destroyed by the SessionFactory, but we had trouble building the SessionFactory
// so destroy it manually.
e.printStackTrace();
StandardServiceRegistryBuilder.destroy(registry);
}
Он правильно читает файлы hbm. Проблема в том, что у меня также есть классы с аннотациями @Entity, поэтому они не отображаются, и я вижу ошибку:

Код: Выделить всё

org.hibernate.boot.MappingException: Association [com.domain.Instrument.internal] references an unmapped entity [com.domain.Instrument.internal] : origin(com/domain/Instrument.hbm.xml)
Я вижу, что в SpringBoot есть EntityScanner, но у меня нет Spring Boot, а есть только Spring.
Как я могу добавить аннотированные классы в MetadataSources? Как я могу использовать объект конфигурации в

Код: Выделить всё

sessionFactory = new MetadataSources( registry ).buildMetadata().buildSessionFactory();
?
@Edit
Я пробовал:

Код: Выделить всё

ServiceRegistry registry = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();

try {
LOGGER.info("Creating session factory");

sessionFactory = new MetadataSources(registry).buildMetadata().buildSessionFactory();
}
но тогда у меня есть org.hibernate.service.spi.ServiceException: невозможно создать запрошенную службу [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] в org.hibernate. service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:275) Вызвано: org.hibernate.HibernateException: доступ к DialectResolutionInfo не может быть нулевым, если hibernate.dialect не установлен

Подробнее здесь: https://stackoverflow.com/questions/791 ... ring-error
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»