![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Bulat |
|
|||
![]() татарский Нео ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: нет Всего: 57 |
tux, сконфигурировал по-твоему и :
Теперь уж без тебя как без рук ![]() -------------------- менеджер по кодеврайтингу ![]() |
|||
|
||||
tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 74 Всего: 132 |
А ты куда AdmittanceContainer.hbm.xml положил? И он у тебя именно так называется? Он должен лежать в каталоге ru/esstu/entrant/orm/hibernate относительно корня CLASS-PATH. То есть если у тебя веб-приложение, то, например, в WEB-INF/classes/ru/esstu и т.д. Если не в веб-приложении, то вместе с твоими откомпилированными классами.
|
|||
|
||||
Bulat |
|
|||
![]() татарский Нео ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: нет Всего: 57 |
tux, я смотрел выше указанный пример, там к сожалению нет ничего про AdmittanceContainer.hbm.xml и т.п. и конфигурируется там по другому, давай линьки на более подробное описание
![]() ![]() -------------------- менеджер по кодеврайтингу ![]() |
|||
|
||||
tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 74 Всего: 132 |
Не может там по-другому конфигурироваться. Все маппинги Hibernate ищет в ресурсах в текущем CLASS-PATH по тому пути, который ты укажешь в hibernate.cfg.xml или в том же пакете, где и классы если конфигурируешь используя hibernate.properties.
Насчет линков... У меня один линк - родная документация по Hibernate. Больше ничего не видел, может быть и есть. |
|||
|
||||
Bulat |
|
|||
![]() татарский Нео ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: нет Всего: 57 |
tux, а может про эти маппинг файлы мне поведать, поподробнее:
<mapping resource="ru/esstu/entrant/orm/hibernate/AdmittanceContainer.hbm.xml"/> <mapping resource="ru/esstu/entrant/orm/hibernate/IdDocType.hbm.xml"/> <mapping resource="ru/esstu/entrant/orm/hibernate/PreliminaryExam.hbm.xml"/> нашел несколько линков, но английском, к сожалению по ка не очень ![]() -------------------- менеджер по кодеврайтингу ![]() |
|||
|
||||
tux |
|
||||||||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 74 Всего: 132 |
Ну давай поподробнее. Просто закину пример с двумя классами, поменяй на свою задачу.
Значится так. Есть два класса и две таблицы, представляющие каталоги и файлы в этих каталогах. Класс Folder:
Класс File:
Маппинг для класса File (File.hbm.xml):
Маппинг для класса Folder (Folder.hbm.xml):
Что есть интересного в маппингах. В тэгах class опредено соответствие между классом (name) и таблицей (table). Тэг id соответствует primary key в таблице. Вообще во всех тэгах свойства name - принадлежность класса (имя класса, атрибут и т.п.). В идентификаторах column - поле таблицы, которое primary key. Можно делать идентификаторы, состоящие из нескольких полей, за такими подробностями - в документацию. Тэг property определяет свойство класса и соответствующее поле в таблице. Наконец, тэг many-to-one дает возможность выбрать целый объект по идентификатору. Здщесь определяется атрибут, которому присвоится выбранное значение (name), класс этого объекта (class), на и тэг column определяет идентификатор, по которому будет получен объект. Такой вид связи характерен для foreign key. Например в данном случае для каждого файла получаем как его атрибут и каталог, причем ничего особенного для этого делать не надо, Hibernate сам получит и куда надо подставит. Ну вот, будут вопросы, спрашивай. Это сообщение отредактировал(а) tux - 18.7.2006, 13:22 |
||||||||
|
|||||||||
SamDark |
|
|||
![]() Добрый кот ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1424 Регистрация: 25.7.2006 Где: Voronezh Репутация: нет Всего: 38 |
tux
Встала задача работать с MySQL. Выбрал hibernate. Почти разобрался. Для описания маппинга использую XML. Аннотации как-то не по душе пришлись. Первым делом опробовал примеры. Всё нормально заработало. Далее выделил часть кода, повторяющуюся многократно и попытался вынести в отдельный утиль-класс... Тут и возникли проблемы:
1. Как избавится от прямого перечисления требуемых классов? т.е. не пользовать cfg.addClass(Price.class); 2. Как по-хорошему возвращать результат работы select(), ну и соотв. передавть объекты в store()? -------------------- rmcreative.ru — Это жжж неспроста... yiiframework.ru — О фреймворке Yii на русском. reggi — здесь я регистрирую домены |
|||
|
||||
tux |
|
||||||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 74 Всего: 132 |
Можно избавиться только если перечислять в конфигурационном hibernate.cfg.xml маппинги классов. В общем либо то либо другое. Пример hibernate.cfg.xml есть выше в этой теме.
Во-первых, зачем у тебя делается вот это?
Можно ведь просто вернуть результат работы методы list(). И, во-вторых, а чем сейчас код не устраивает? |
||||||
|
|||||||
SamDark |
|
||||
![]() Добрый кот ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1424 Регистрация: 25.7.2006 Где: Voronezh Репутация: нет Всего: 38 |
tux
Для начала огромное спасибо за помощь! 1. Понял. Буду пользовать маппинги из XML. 2. После того, как разобрался с маппингами код устроил вполне. Ещё одна проблема с маппингом:
! Duplicate entry '3.230' for key 1 ! т.е. вставка одинковых данных не проходит, хотя нет ограничений в таблице, да и в маппинге (вроде) тоже. -------------------- rmcreative.ru — Это жжж неспроста... yiiframework.ru — О фреймворке Yii на русском. reggi — здесь я регистрирую домены |
||||
|
|||||
tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 74 Всего: 132 |
||||
|
||||
SamDark |
|
|||
![]() Добрый кот ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1424 Регистрация: 25.7.2006 Где: Voronezh Репутация: нет Всего: 38 |
tux
"Вроде" оказалось именно "вроде". Спасибо за подсказку. -------------------- rmcreative.ru — Это жжж неспроста... yiiframework.ru — О фреймворке Yii на русском. reggi — здесь я регистрирую домены |
|||
|
||||
new |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 12.7.2006 Репутация: нет Всего: нет |
Хочу задать вопрос по поводу размещения hibernate.hbm.xml и map-файлов:
У меня это все лежит в /WEB-INF/classes и все работает на ура. Хочу положить конфиги напрмер в /WEB-INF/conf/hibernate.Это возможно ? ![]() Еще хотелось бы прояснить ситуацию с CLASSPATH в веб-приложениях: У каждого веб-приложения свой CLASSPATH.Существует контекстный (так вроде называется) CLASSPATH для веб-пиложения (/WEB-INF/lib). Как изменить CLASSPATH приложения ? (к примеру добавить туда /WEB-INF/conf/hibernate) или так не получится ? |
|||
|
||||
tux |
|
||||||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 74 Всего: 132 |
Все возможно, у Hibernate очень гибкое конфигурирование и использование CLASS-PATH - лишь дефолтный способ, правда, очень удобный. Вместо метода configure(), который пытается найти в ресурсах конфигурационный файл hibernate.cfg.xml можно использовать:
Что касается маппингов... Возможности их размещения более ограничены. В dtd атрибуты тэга mapping описаны так:
То есть возможностей тоже много.
Средствами сервера приложения или веб-контейнера не получится, но можно реализовать собственный загрузчик классов, тогда все возможно. |
||||||
|
|||||||
baph |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 24.10.2009 Репутация: нет Всего: нет |
Что за хрень все всё знают и не делятся!! Совсем как этот смайл
![]() package net.sf.hibernate.examples.quickstart; //import org.hibernate.Hibernate; import org.hibernate.Transaction; import net.sf.hibernate.examples.quickstart.*; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import javax.servlet.ServletException; import java.io.IOException; import static java.lang.Integer.parseInt; /** * Created by IntelliJ IDEA. */ public class Main extends HttpServlet { // HibernateUtil HUU = new HibernateUtil(); @Override protected void doGet(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException { httpServletResponse.sendRedirect("myHtml.html"); } @Override protected void doPost(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException { httpServletResponse.sendRedirect("myHtml.html"); // httpServletResponse.sendRedirect("Right.jsp"); HibernateUtil myf = new HibernateUtil(); Session session = (Session) HibernateUtil.currentSession(); //Transaction tx= session.beginTransaction(); Cat princess = new Cat(); princess.setName("Princess"); princess.setSex('F'); princess.setWeight(7.4f); // session.save(princess); //tx.commit(); HibernateUtil.closeSession(); } } И не делайте вид, что Вы этого не знаете или сообщение не видите, хотя из чувства общечеловеческой справедливости и презумции помощи, пожалуйста подскажите с как правильно сделать веб-проложение с hibernate и бд на Postgres 8. Сама бд есть и проект приложения, но что-то не срастается и толком не работает. Вот моё мыло [email protected] или [email protected], может кто осмелиться сообщить свое, чтоб отправить файл проекта. Это сообщение отредактировал(а) baph - 1.11.2009, 13:19 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |