powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Класс первичного ключа в дескрипторе развертывания
17 сообщений из 17, страница 1 из 1
Класс первичного ключа в дескрипторе развертывания
    #33505054
poor_worker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос "из интереса": хотелось бы услышать мнение форумчан, класс entity bean по логике вещей должен быть таким (объектом):

Код: plaintext
<prim-key- class >java.lang. Long </prim-key- class >

или таким (типом)

Код: plaintext
<prim-key- class > long </prim-key- class >

Заранее спасибо
...
Рейтинг: 0 / 0
Класс первичного ключа в дескрипторе развертывания
    #33505077
М.Голованов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оба варианта проходят. Второй проще. А в чем вопрос?
...
Рейтинг: 0 / 0
Класс первичного ключа в дескрипторе развертывания
    #33505098
poor_worker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Собственно вопрос так звучит:
на объектные или типизированные переменные лучше мапить поля базы данных?

Что правильнее с точки зрения языка, быстрее работает и т.д.?
...
Рейтинг: 0 / 0
Класс первичного ключа в дескрипторе развертывания
    #33505499
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
imho на простые типы если возможно. за оптимизацию я думаю прикладной код отвечать не должен
...
Рейтинг: 0 / 0
Класс первичного ключа в дескрипторе развертывания
    #33505938
М.Голованов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я же говорю, второй проще.
...
Рейтинг: 0 / 0
Класс первичного ключа в дескрипторе развертывания
    #33506233
KPIIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все что передается по RMI-IIOP, должно иметь сериализуемый, и кроме того должен реализовывать методы equals и hashCode.
Первичными ключами не могут быть приметивы, потому что некоторая часть спец EJB запрещает использование примитивов. например, смотрим EJBObject.getPrimaryKey() возвращает Object ...

to М.Голованов
funikovyuri
прежде чем советовать - учить матчасть...
...
Рейтинг: 0 / 0
Класс первичного ключа в дескрипторе развертывания
    #33506342
Exppp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KPIIS а он сам не догадается и обёртку не вернёт???
делают же примитивные ключи.

я,правда, всегда использую обёртки так можно легко отличить
свежесозданный объект от загруженного из базы
а нужно это, чтоб случайно не попытаться удалить то чего ещё не записал

мужики бросайте этот 2.1 гемор, айда на 3.0
...
Рейтинг: 0 / 0
Класс первичного ключа в дескрипторе развертывания
    #33506635
М.Голованов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ExpppKPIIS а он сам не догадается и обёртку не вернёт???
делают же примитивные ключи.

Догадается. В реализации entity beans как правило можно использовать примитивные типы как ключи. Однако в дескрипторах нужно использовать только сериализуемые типы. Например, если в дескрипторе класс ключа определен как

Код: plaintext
1.
2.
3.
4.
5.
    <entity>
      <ejb-name>SomeEntity</ejb-name>
      . . .
      <prim-key- class >java.lang.Integer</prim-key- class >
      <primkey-field>id</primkey-field>
    </entity>
то в реализации этого класса можно определить ключ как int:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
 public   class  SomeEntityImpl  implements  EntityBean {
     public   [b]int  id[/b];
     public   int  getId()  throws  RemoteException {
         return  id;
    }
     public   void  setId( int  id)  throws  RemoteException {
         this .id = id;
    }
    ...
}
...
Рейтинг: 0 / 0
Класс первичного ключа в дескрипторе развертывания
    #33507489
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KPIIS

Все что передается по RMI-IIOP, должно иметь сериализуемый, и кроме того должен реализовывать методы equals и hashCode.

Java Language to IDL Mapping
Specification1.2.2 Primitive Types
All the standard Java primitive types are supported as part of RMI/IDL. These are:
• void, boolean, byte, char, short, int, long, float,
double http://www.omg.org/docs/formal/01-06-07.pdf

Первичными ключами не могут быть приметивы, потому что некоторая часть спец EJB запрещает использование примитивов. например, смотрим EJBObject.getPrimaryKey() возвращает Object ...
Хочеться глянуть на "эту часть", потому как то что EJBObject.getPrimaryKey() возврщает Object не мешает нам вернуть,например, new Integer(10);
...
Рейтинг: 0 / 0
Класс первичного ключа в дескрипторе развертывания
    #33508296
KPIIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
funikovyuri
Хочеться глянуть на "эту часть", потому как то что EJBObject.getPrimaryKey() возврщает Object не мешает нам вернуть,например, new Integer(10);
никто не мешает... пишем свою релиазацию EJBObject и возвращаем что угодно. Или качаем коды Jboss, etc и смотрим как сделано у них.
или EJBObject вы будете реализовывать :)?
...
Рейтинг: 0 / 0
Класс первичного ключа в дескрипторе развертывания
    #33508302
KPIIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
funikovyuri
Specification]1.2.2 Primitive Types
All the standard Java primitive types are supported as part of RMI/IDL. These are:
• void, boolean, byte, char, short, int, long, float,
double http://www.omg.org/docs/formal/01-06-07.pdf
[/quot]

Опять идем учить матчасть... :)
Java RMI over IIOP combines the best features of Java RMI technology with the best features of CORBA technology. Like Java RMI, RMI over IIOP speeds distributed application development by allowing developers to work completely in the Java programming language. When using RMI over IIOP to produce Java technology-based distributed applications, there is no separate Interface Definition Language (IDL) or mapping to learn. Like RMI, RMI over IIOP provides flexibility by allowing developers to pass any serializable Java object (Objects By Value) between application components. Like CORBA, RMI over IIOP is based on open standards defined with the participation of hundreds of vendors and users in the Object Management Group.
...
Рейтинг: 0 / 0
Класс первичного ключа в дескрипторе развертывания
    #33508335
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KPIIS

может мой английский так плох, но я не вижу где в вашем тексте сказано что использовать java-примитивы нельзя в RMI-IIOP, тем более не ясно где источник информации о часть спец EJB запрещает использование примитивов?
...
Рейтинг: 0 / 0
Класс первичного ключа в дескрипторе развертывания
    #33508354
KPIIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а Object EJBObject.getPrimaryKey() - это разве не одна из частей спецификации EJB?
...
Рейтинг: 0 / 0
Класс первичного ключа в дескрипторе развертывания
    #33508382
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Object EJBObject.getPrimaryKey()

Это запись не означает что первичный ключ не может быть примитивом... т.к. в java примитивы представимы в виде объектов (а начиная с 1.5 это вообще выполняется jvm автоматически). кроме того вы не ответили на первый вопрос - где в приведенном вами тексте сказано что примитивные типы использовать в RMI-IIOP нельзя?
...
Рейтинг: 0 / 0
Класс первичного ключа в дескрипторе развертывания
    #33508385
KPIIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А чего вообще говорить - пример в студию EntityBean'a с примитивным PK
...
Рейтинг: 0 / 0
Класс первичного ключа в дескрипторе развертывания
    #33508456
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KPIIS
http://java.sun.com/developer/codesamples/ejb.html

автор
Primitive Type Primary Keys

VendorBean uses a primary key that is a Java programming language primitive type, an int. To use a primitive type as the primary key, you must create a wrapper class. VendorKey is the wrapper class for VendorBean.

The wrapper primary key class has the same requirements as described in The Primary Key Class. This is the VendorKey wrapper class:

package dataregistry;
public final class VendorKey implements java.io.Serializable {

public int vendorId;

public boolean equals(Object otherOb) {

if (this == otherOb) {
return true;
}
if (!(otherOb instanceof VendorKey)) {
return false;
}
VendorKey other = (VendorKey) otherOb;
return (vendorId == other.vendorId);
}
public int hashCode() {
return vendorId;
}
public String toString() {
return "" + vendorId;
}
}


Т.е. идея в том что примитивы использовать можно, но так как спецификация писалась для общего случая, то везде ожидается Object. Так что если нужно можно использовать примитив, выполняя его преобразование в Object...

Я когда отвечал на вопрос поста не заметил что разговор идет о Entity Bean'ах, а не о Hibernate/EJB3 Pojos, так что по теме поста ответ будет - можно использовать что угодно, но класс использовать проще.

Мне просто понравились ваши объяснения про RMI-IIOP и запреты спецификации...
...
Рейтинг: 0 / 0
Класс первичного ключа в дескрипторе развертывания
    #33508532
KPIIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А мне понравились ваши сообщения про первичный ключ в entities.

Мне просто понравились ваши объяснения про RMI-IIOP и запреты спецификации...
я сначала говорил про EJB спецификации...

потом полез в RMI-IIOP - а он действительно может бросаться примитивами
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Класс первичного ключа в дескрипторе развертывания
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]