Почему Hibernate не видит .hbm.xml?

318
22 июля 2017, 05:56

У меня объекты Task должны записываться в таблицу tasks:

Но получаю ошибку:

Exception in thread "main" org.hibernate.boot.MappingNotFoundException: Mapping (RESOURCE) not found : ru.pravvich.model.Task.hbm.xml : origin(ru.pravvich.model.Task.hbm.xml)

Что у меня нет мапинга хотя все мне кажется настроено, помогите пожалуйста разобраться, где я ошибся. Вот все мои конфигурации:

Объект:

public class Task {
    private int id;
    private String desc;
    private Timestamp create;
    private boolean done; 
    //гетеры и сеттеры... 
}

Есть конфигурационный файл hibernate.cfg.xml :

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="http://www.hibernate.org/xsd/orm/cfg">
    <session-factory>
        <property name="connection.url">jdbc:postgresql://localhost:5432/todo_list</property>
        <property name="connection.driver_class">org.postgresql.Driver</property>
        <property name="connection.username">postgres</property>
        <property name="connection.password">1</property>
        <property name="dialect">org.hibernate.dialect.PostgreSQL95Dialect</property>
        <mapping resource="ru.pravvich.model.Task.hbm.xml" />
    </session-factory>
</hibernate-configuration>

По соответствующему адресу ru.pravvich.model.Task.hbm.xml есть файл:

<hibernate-mapping xmlns="http://www.hibernate.org/xsd/hibernate-mapping">
    <class name="ru.pravvich.model.Task">
        <id name="id" column="id">
            <generator class="identity" />
        </id>
        <property name="desc" column="description" />
        <property name="done" column="done" />
        <property name="create" column="create_time" />
    </class>
</hibernate-mapping>

И лежит он правильно:

Но при попытке запустить вот таким образом:

final SessionFactory factory =
       new Configuration().configure().buildSessionFactory();
final Session session = factory.openSession();
final Transaction transaction = session.beginTransaction();
final Task task2 = new Task(3, "todo3",
            new Timestamp(System.currentTimeMillis()), false);
session.save(task2);
session.close();
factory.close();

И таблица:

CREATE TABLE IF NOT EXISTS tasks (
    id SERIAL NOT NULL,
    description TEXT NOT NULL,
    done BOOLEAN NOT NULL,
    create_time TIMESTAMP NOT NULL,
    PRIMARY KEY (id)
);
READ ALSO
String &amp; StringBuilder

String & StringBuilder

В таких языках как Java и C# для конкатенации большого числа строк принято использовать StringBuilder, чтобы получить линейную асимптотику вместо...

293
Как вернуть из метода значение String&#39;a

Как вернуть из метода значение String'a

Только учусь Джаве и делаю маленькую текстовую игру и в начале игрок может написать своё имя, которое в последствии будет участвовать в диалогахЯ...

254
Как воспроизвести багу в Android

Как воспроизвести багу в Android

Бывает так что появляется баг, который нереально и не понятно как воспроизвести

214
Счет денег в java

Счет денег в java

Такая ситуация, пишу приложение в котором пользователь указывает необходимое кол-во товара после чего видит итоговую сумму(ценаТовара*КолВо)Проблема...

294