У меня есть проект в eclipse (индиго), где я получаю доступ к данным SQL с помощью Hibernate.
Я создал пару классов и использовал аннотации для ручного сопоставления с таблицами. Я добавил файл jar драйвера (sqljdbc4.jar) в путь сборки и ввел путь к папке, содержащей _sqljdbc_auth.dll_, как «местоположение собственной библиотеки» в файле jar драйвера (для поддержки интегрированной безопасности).
Я могу получить доступ к данным, используя подключение JDBC к моему SQL Server 2012, в котором используется встроенная система безопасности и которое я определил в hibernate.cfg.xml.
В качестве следующего шага я хотел бы автоматически генерировать классы из оставшихся таблиц SQL. Поэтому я установил инструменты Hibernate с сайта JBOSS и пытаюсь выполнить необходимые шаги: Я создал конфигурацию консоли на основе моего файла конфигурации гибернации. Теперь в перспективе Hibernate моего проекта я вижу три элемента: «Конфигурация», «Фабрика сеансов» и «База данных». В свойствах «Конфигурации» я вижу свой URL-адрес подключения и другие настройки.
Однако, когда я нажимаю «База данных», я получаю сообщение об ошибке org.hibernate.exception.JDBCConnectionException: Getting database metadata
, которое сводится к Caused by: java.lang.UnsatisfiedLinkError: no sqljdbc_auth in java.library.path
- похоже, что инструмент игнорирует настройку проекта - он подхватывает jar, но не путь к dll, и
- Не вижу способа добавить папку с dll в java.library.path
Я пытался использовать набор java.library.path
, используя файл hibernate.properties
и ссылаясь на этот файл в конфигурации консоли. Кажется, это делает половину работы, так как в элементе «Конфигурация» теперь я вижу папку, включенную в java.library.path
. Однако это ничего не меняет, когда я пытаюсь щелкнуть «База данных» или настроить конфигурацию генерации кода - все еще ошибка no sqljdbc_auth in java.library.path
.
Единственный обходной путь, который я нашел до сих пор, — это поместить мою dll в любую папку, которая отображается по умолчанию в java.library.path. Затем я могу настроить «конфигурацию генерации кода» и создать классы. Однако 64-битная dll по пути по умолчанию загружается и вызывает конфликт, например, когда мне нужна 32-битная версия из другого приложения, поэтому я предпочел бы сделать это правильно и ссылаться по мере необходимости.
Возможно, можно добавить путь на вкладке Путь к классам в Конфигурация консоли, но все выглядит так, как написано - "путь к классам" и добавление к нему моей папки не меняется что-либо.
Я хотел бы знать, как правильно настроить java.library.path для инструментов Hibernate. Любые идеи? Является ли это возможным?