Ржевский Дмитрий Rzhevskiy Dmitry

вторник янв 13, 2009

JDO (rus)


В проеках в которых я учавствовал, я использовал Hibernate, Ibatis, или напрямую JDBC. Но в последнее время часто слышал что хотят применять  Объектно-Ориентированные Базы Данных (в частности CACH?) в высоконагруженных проектах. Скорость выполнения некоторых запросов в десятки раз больше чем при использовании реляционной БД. Но у CACH? ндостаток -использование проприетарного API – Jalape?o ( com.jalapeno.annotations.*).

Другой вариант – использование открытого стандарта JDO и вместе с ней OO Базы Данных Versant, которая поддерживает JDO.

Чем ещё удобно использование JDO – это тем что полученное приложение можно запустить как на РСУБД так и на ООСУБД. При это следует учесть обстоятельство что полномасштабные ООСУБД стоят довольно дорого.

Учитывая эти данные я решил использовать в новом проекте JDO. В качестве реализации я решил использовать бесплатный DataNucleus.


Шаги:

Добавоение зависимостей:

................

102 <dependency>

103 <groupId>org.datanucleus</groupId>

104 <artifactId>datanucleus-rdbms</artifactId>

105 <version>1.0.3</version>

106 </dependency>

107 <dependency>

108 <groupId>org.datanucleus</groupId>

109 <artifactId>datanucleus-java5</artifactId>

110 <version>1.0.1</version>

111 </dependency>

112

..................

Установка maven плагина: на стадии компиляции будет модифицирроваться байт код.

...........

<plugin>

<groupId>org.datanucleus</groupId>

<artifactId>maven-datanucleus-plugin</artifactId>

<version>1.0.2</version>

<configuration>

<log4jConfiguration>log4j.properties</log4jConfiguration>

<verbose>true</verbose>

</configuration>

<executions>

<execution>

<phase>compile</phase>

<goals>

<goal>enhance</goal>

</goals>

</execution>

</executions>

</plugin>

</plugins>

</build>

..................


добавление metadata файла package.jdo. Даже если используются JDO аннотации пописать классы в package.jdo - обязательно!

интеграция со Spring



Что мне понравилось:

Не нужно в модельных объектах писть ID. Действительно – они только засоряют бизнес описание предметной области.


В запросах JDO (JDOQL) можно задать range – очень нужна для вывода даннх постранично.

В Hibernate(HQL) такое сделать нельзя – эти параметры нужно выставлять параметры из java кода.



Что не понравилось:

В возвращаемых запросам коллециях не реализован простой метод subList !

Придётся реализовывать и им коммитить..


для jdo в интернете нашёл ООСУБД пожддерживающую JDO http://www.orientechnologies.com .Попробую её использовать на продакшене.

Комментарии:

Дмитрий я сейчас столкнулся с JDO и вылез exception может ты знаешь?

Caused by: org.datanucleus.jdo.exceptions.ClassNotPersistenceCapableException: The class &quot;The class &quot;Cite&quot; is not persistable. This means that it either hasnt been enhanced, or that the enhanced version of the file is not in the CLASSPATH (or is hidden by an unenhanced version), or the Meta-Data/annotations for the class are not found.&quot; is not persistable. This means that it either hasnt been enhanced, or that the enhanced version of the file is not in the CLASSPATH (or is hidden by an unenhanced version), or the Meta-Data for the class is not found. NestedThrowables: org.datanucleus.exceptions.ClassNotPersistableException: The class &quot;Cite&quot; is not persistable. This means that it either hasnt been enhanced, or that the enhanced version of the file is not in the CLASSPATH (or is hidden by an unenhanced version), or the Meta-Data/annotations for the class are not found.

опубликовал Ivan Август 28, 2009 at 02:41 PM MSD #

Как сказано в сообщении классы "hasnt been enhanced":
После того как класс скомпилировал его нужно обработать "посткомпилятором JDO" http://www.datanucleus.org/products/accessplatform_1_1/enhancer.html

опубликовал Дима Сентябрь 01, 2009 at 05:49 AM MSD #

Опубликовать комментарий:
  • HTML Syntax: Подключен
Дмитрий Ржевский

Тэги:
cloud eagle experiments hadoop jelastic jelastic.com livejournal paraglider вычисления облако облачные орёл параплан

Calendar



Google Friend Connect.
Возможно через несколько лет не будет отдельных социальных сетей.
Они объединятся в одну открытую и распределённую систему.
Друзья Нравится

Feeds

Search

Links

Navigation


  • Я в ЖЖ    
  • MirTesen.ru
  • Я в "Linked In"

  • Мои друзья
  • Алекслёха
  • Latron

  • Links:
    log4j.ru
    Apache Maven
    моё родовое имение
    Виндсёрфинг


    Моё резюме
    My resume


    XFN Friendly

    Поиск