Я работаю над веб-приложением Java/Spring/Hibernate, разработанным в Eclipse.Как вывести из строя объекты гибернации?
Это веб-приложение на самом деле представляет собой два разных проекта, которые дублируют пару классов сущности Hibernate, а также их соответствующие классы хранилища Hibernate. Очевидно, было бы неплохо взять дублированный код и перенести его в внешний JAR-файл или что-то еще.
Из документации Hibernate я знаю, что я должен помещать класс сущности в новый проект JAVA, содержащий файл persistence.xml
. Я также знаю, что я могу экспортировать этот проект в JAR и включать его в classpath моих основных проектов. Кроме того, я знаю, что я должен ссылаться на этот JAR из своего hibernate.cfg.xml
в моем основном проекте.
По какой-то причине это не так просто с проектом, над которым я сейчас работаю.
Вот вопросы:
в моем внешнем проекте, который содержит общий код, я могу включать класс Hibernate Repository он это тоже? Как это следует отметить в
persistence.xml
, если это действительно должно быть вообще?В моем внешнем JAR, насколько минимальным может быть
persistence.xml
? Например, основной проект уже настраивает диалект спящего режима, поэтому я могу оставить это из этого внешнего JAR'spersistence.xml
?Из документов Hibernate я знаю, что могу ссылаться на свой внешний JAR-файл, используя тег
<jar-file>
в своемhibernate.cfg.xml
. Так что, если мой проект не имеетhibernate.cfg.xml
? У нас есть конфигурация xml для Spring, которая дает свойствоannotatedClasses
дляorg.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean
. Мне не очень повезло найти примеры ссылок на внешние JAR-файлы с помощьюAnnotationSessionFactoryBean
.
Я пробовал искать на этом сайте, но не нашел ничего подобного, чтобы помочь мне еще. Извините, если это дубликат сообщения или глупо очевидный вопрос или что-то еще.
Заранее спасибо :)
EDIT:
ОК, так что похоже, что я в конечном счете, нужно знать есть, предположим, я включил "MY_TEST.jar"
в моем пути к классам, и далее предположим, что "MY_TEST.jar"
имеет один аннотированный Hibernate class: src.shared.myEntity.java
Как я могу обратиться к этому классу сущности с приведенным ниже отрывком конфигурации Spring? (Продолжать получать IllegalArgumentException: Cannot find class
в значительной степени независимо от того, что я стараюсь)
<bean id="my.postgres.sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource"
ref="my.postgres.dataSource" />
<property name="annotatedClasses">
<list>
<value>src.app.EntityA</value>
<value>src.app.EntityB</value>
</list>
</property>
.........
</bean>
Эй, спасибо за быстрый ответ! Извините, я оговорился о вещи в репозитории. У меня есть внешняя банка в моем пути к классам, но у меня возникают проблемы с ее ссылкой, используя свойства AnnotationSessionFactoryBean в моей конфигурации Spring. Опять же, документы Hibernate дают ясный пример того, как это делается с файлом hibernate.cfg.xml, но первоначальный архитектор проекта решил не включать это, а настроить все по конфигурации Spring. Все компилируется, но весна не может найти мои внешние классы Entity. – Langecrew
Затем покажите нам конфигурацию пружины, с которой у вас возникла проблема, и сообщите нам, какое исключение (трассировка стека). Но весна тоже не заботится о баночках. Если какой-либо класс находится в пути к классам, он найдет его. –
опубликовано в правлении к моему оригинальному сообщению – Langecrew