![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Ulysses4j |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 304 Регистрация: 6.6.2007 Где: Ростов-на-Дону Репутация: 1 Всего: 10 |
Есть BMP Entity bean 2.x с двумя персистентными полями типа String: id, name. При ejbLoad()
вовращает значение name. А я, соответственно, хочу, чтобы было id. Как этого добиться? Это сообщение отредактировал(а) Ulysses4j - 15.7.2007, 03:53 -------------------- Communication is critical to the job of a programmer. C. Jazdzewski. Fatherly Advice To New Programmers |
|||
|
||||
| ekr |
|
|||
![]() ...и это пройдет... ![]() ![]() Профиль Группа: Участник Сообщений: 359 Регистрация: 6.5.2007 Где: Moscow, RU Репутация: 12 Всего: 19 |
Поле name трактуется как PK.
Чтобы PK стало поле id надо эти значения возвращать из метода ejbCreate(). |
|||
|
||||
| Ulysses4j |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 304 Регистрация: 6.6.2007 Где: Ростов-на-Дону Репутация: 1 Всего: 10 |
Так оно и есть. Но не помогает... Я не слишком силен в понимании жизненого цикла бинов, но, кажется, ни ejbCreate(), ни ejbFindByPrimaryKey(String id) (учитывая, что ошибка происходит при обращении к одному из finders) не вызывается - я ставил вывод в консоль сообщений: вроде бы вызывается setEntityContext(EntityContext ctx) и ejbLoad(), и вот в ejbLoad() такая ерунда. На всякий случай код ejbCreate(String name):
У меня id - auto_generated. Это сообщение отредактировал(а) Ulysses4j - 15.7.2007, 13:50 -------------------- Communication is critical to the job of a programmer. C. Jazdzewski. Fatherly Advice To New Programmers |
|||
|
||||
| ekr |
|
|||
![]() ...и это пройдет... ![]() ![]() Профиль Группа: Участник Сообщений: 359 Регистрация: 6.5.2007 Где: Moscow, RU Репутация: 12 Всего: 19 |
Тогда надо убедиться, что методы ejbFindXXX() в классе реализации содержат правильный sql-запрос и возвращают значение именно поля id.
FYI: метод ejbCreateXXX(...) вызывается контейнером у объекта реализации (т.н. bean instance), когда клиент вызывает у фабрики (EJBHome) метод createXXX(...) Добавлено через 1 минуту и 59 секунд это случается при вызове какого именно finder-метода? нужно проверить правильность соответствующего ejbFindXXX() метода. |
|||
|
||||
| Ulysses4j |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 304 Регистрация: 6.6.2007 Где: Ростов-на-Дону Репутация: 1 Всего: 10 |
Действительно, этот findXXX() (вернее, ejbFindXXX) возвращал name, а не id. Теперь зарботало. Извините, за глупый вопрос и спасибо, огромное!
ekr, а можно такой вопрос по дизайну: если в сервлете несколько раз используется один и тот же бин (EB; например несколько раз findXXX вызывается, но в разных методах-обработчиках запросов, получаемых этим сервлетом), то насколько хорошо сделать сервлету поле типа домашнего интерфейса, инициализировать его в init() и дальше пользоваться им? Или все-таки лучше каждый раз заново его искать? Это сообщение отредактировал(а) Ulysses4j - 15.7.2007, 14:59 -------------------- Communication is critical to the job of a programmer. C. Jazdzewski. Fatherly Advice To New Programmers |
|||
|
||||
| ekr |
|
|||
![]() ...и это пройдет... ![]() ![]() Профиль Группа: Участник Сообщений: 359 Регистрация: 6.5.2007 Где: Moscow, RU Репутация: 12 Всего: 19 |
не за что )))
Кеширование фабрики (EJBHome-объекта) - очень распространенная практика и очень благотворно влияет на нагрузочную масштабируемость. Т.к. соединение с сервисом именования (jndi) и поиск в нем - затратные операции. Многие шаблоны проектирования (e.g. J2EE Core Pattern Service Locator) подразумевают такое кеширование. |
|||
|
||||
| Ulysses4j |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 304 Регистрация: 6.6.2007 Где: Ростов-на-Дону Репутация: 1 Всего: 10 |
Спасибо-спасибо, так и сделаю! И про паттерны J2EE у вас читать буду!
-------------------- Communication is critical to the job of a programmer. C. Jazdzewski. Fatherly Advice To New Programmers |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |