SQLite + Hibernate

76
10 декабря 2021, 08:00

Не получается задать относительный путь. После создания артефакта (IDEA) при открытии сессии выводит ошибку: javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: could not prepare statement

Я пробовал сделать как здесь: https://stackoverflow.com/questions/36207826/hibernate-h2-database-relative-path

Пробовал как здесь: https://stackoverflow.com/questions/19807320/hibernate-sqlite-db-outside-jar

Я иногда встречаю вот такую формулировку Assuming that your classpath is now established. Мне нужно что сделать... в манифесте в classpath указать бд? Но тогда я не понимаю как это сделать.

hibernate.cfg.xml

<?xml version = "1.0" encoding = "utf-8"?>
<!DOCTYPE hibernate-configuration SYSTEM
    "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
    <property name="hibernate.connection.driver_class">
        org.sqlite.JDBC
    </property>
    <property name="hibernate.connection.url">
        jdbc:sqlite:./testfx_db
    </property>
    <property name="hibernate.dialect">
        org.hibernate.dialect.SQLiteDialect
    </property>
    <property name="show_sql">
        true
    </property>
</session-factory>

Как-то же идее удаётся найти файл базы, если он лежит в корне проекта. То есть, из среды разработки выполняется всё отлично. Помогите пожалуйста.

Answer 1

Проблема в том, что когда вы запускаете проект из JAR - вся файловая система в терминах загрузки лежит вся внутри JAR, грубо говоря загрузчик классов ничего не знает о внешнем мире. Соответственно:

1) Или вы указываете в манифесте где у вас еще есть файлы Class-Path: db/

2) Или вы включаете в свой JAR БД, далее при первом запуске копируете БД во внешний мир и вручную соединяете с hibernate с БД.

READ ALSO
Как правильно создавать модели данных

Как правильно создавать модели данных

Делаю приложение "Список дел/задач"

158
Как из трехмерного массива получить одномерный, удовлетворяющий условию задачи?

Как из трехмерного массива получить одномерный, удовлетворяющий условию задачи?

В вузе задали задачу на java, подскажите как её решить? Или может какие-нибудь обучающие материалы о том, как решать подобныеДалее текст на английском:

139
нужная форма JButton

нужная форма JButton

мне нужно что бы при нажатии на кнопку JButton открывалась нужая JFrame например у меня есть окно с кнопкой я нажимаю на кнопку и открыается нужная...

84
Помогите, готовлюсь к Олимпиаде

Помогите, готовлюсь к Олимпиаде

Олимпиада ориентирована на Паскаль, но я его плохо знаю, зато знаю JavaОдно из условий на олимпиаде это работа с файлами, то есть в текстовый...

64