Когда я использую информацию о модуле с Hibernate, создание Initial SessionFactory не удалосьJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Когда я использую информацию о модуле с Hibernate, создание Initial SessionFactory не удалось

Сообщение Anonymous »

Я не понимаю, в чем проблема. В обычном проекте объект загружается нормально, но когда я добавляю файл модуль info.java, я вижу следующую ошибку: < /p>

не мог создать восстановление Org Org. hibernate.persister.entity.singletabletentitypersister < /p>
< /blockquote>
module-info.java выглядит так: < /p>

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

module crud.organization {
requires jakarta.persistence;
requires jakarta.validation;
requires org.hibernate.orm.core;
requires org.slf4j;
requires java.naming;}
< /code>
В классе Main Я загружаю одну объект: < /p>
public static void main(String[] args) {
OrgCategoryDao orgCategoryDao = new OrgCategoryDao();
Optional category = orgCategoryDao.getById(2);

if(category.isPresent())
System.err.println("present " + category.get());
else System.err.println("not present");}
HibernateUtil.java:

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

public class HibernateUtil {

private final static Logger logger = LoggerFactory.getLogger(HibernateUtil.class);

private static StandardServiceRegistry registry = null;
private static @NotNull Optional sessionFactory = Optional.empty();

private synchronized static @NotNull Optional buildSessionFactory() {
try {
if (registry != null) shutdown();
registry = new StandardServiceRegistryBuilder().configure().build();
MetadataSources sources = new MetadataSources(registry);
Metadata metadata = sources.getMetadataBuilder().build();
return Optional.ofNullable(metadata.getSessionFactoryBuilder().build());
} catch (Throwable ex) {
System.err.println(ex.getMessage());
shutdown();
}
return Optional.empty();
}

public synchronized static @NotNull Optional getSessionFactory() {
if (sessionFactory.isPresent()) return sessionFactory;
sessionFactory = buildSessionFactory();
return sessionFactory;
}

public synchronized static void shutdown() {
if(registry != null) {
StandardServiceRegistryBuilder.destroy(registry);
}
}}
< /code>
orgcategorydao: < /p>
public class OrgCategoryDao {
public @NotNull Optional getById(int id) {
final Optional factory = HibernateUtil.getSessionFactory();
if(factory.isEmpty()) return Optional.empty();
Session session = null;
Transaction transaction = null;
try{
session = factory.get().openSession();
transaction = session.beginTransaction();
OrgCategory category = session.get(OrgCategory.class, id);
transaction.commit();
return Optional.ofNullable(category);
}catch (Exception e){
if(transaction != null){
transaction.rollback();
}
logger.error(e.getMessage());
}finally {
if(session != null) session.close();
}
return Optional.empty();
}
}
Категория организации:

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

@Entity
@Table(name = "organization_category")
@NamedQuery(name = "getAllWithSortByName", query = "select oc from OrgCategory oc order by name")
public class OrgCategory {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id_category")
private int id;

@Column(name = "name_category")
private String name;

@Column(name = "promt_for_text")
private String promtForText;

protected OrgCategory() {}
public OrgCategory(@NotNull String name,
@NotNull String promtForText) {
this.name = name;
this.promtForText = promtForText;
}

@Override
public String toString() {
return "OrganizationCategory{" +
"id=" + id +
", name='" + name + '\'' +
", promtForText='"  + promtForText + '\'' +
'}';
}

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getPromtForText() {
return promtForText;
}

public void setPromtForText(String promtForText) {
this.promtForText = promtForText;
}
}
Зависимости:

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

 
jakarta.persistence
jakarta.persistence-api
3.1.0



org.hibernate
hibernate-core
6.5.2.Final

Хочу работать с модулями, но не могу, ничего не понимаю в логах гибернации

Подробнее здесь: https://stackoverflow.com/questions/793 ... ion-failed
Ответить

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

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

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

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

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