Статьи

NuoDB и Hibernate

Для пользователей Java NuoDB предоставляет диалект Hibernate, который поддерживает версии 3.6.6 и 4.1.x Hibernate.

Пример приложения, использующего Hibernate и диалект NuoDB Hibernate, можно найти в каталоге примеров установки NuoDB:

  • % NUODB_HOME% \ samples \ hibernate (Windows)
  • $ NUODB_HOME / samples / hibernate (UNIX)

Образец приложения построен с использованием Maven, поэтому в ваш репозиторий Maven необходимо установить и диалект NuoDB, и файлы JAR JDBC, прежде чем пытаться создать и запустить образец.

Jar-файлы JDBC Hibernate находятся в:

  • % NUODB_HOME% \ jar \ nuodb-hibernate-1.0.jar (Windows)
  • $ NUODB_HOME / jar / nuodb-hibernate-1.0.jar (UNIX)
  • % NUODB_HOME% \ jar \ nuodbjdbc.jar (Windows)
  • $ NUODB_HOME / jar / nuodbjdbc.jar (UNIX)

Чтобы установить файлы jar в локальный репозиторий (для Windows просто измените путь):

/opt/nuodb/samples/hibernate $ mvn install:install-file -DgroupId=com.nuodb -DartifactId=nuodb-jdbc -Dversion=1.0 -Dpackaging=jar -Dfile=/opt/nuodb/jar/nuodbjdbc.jar
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Hibernate Sample 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-install-plugin:2.3.1:install-file (default-cli) @ nuodb-hibernate-sample ---
[INFO] Installing /opt/nuodb/jar/nuodbjdbc.jar to /Users/johnblais/.m2/repository/com/nuodb/nuodb-jdbc/1.0/nuodb-jdbc-1.0.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.587s
[INFO] Finished at: Thu Apr 11 11:58:59 EDT 2013
[INFO] Final Memory: 3M/81M
[INFO] ------------------------------------------------------------------------

/opt/nuodb/samples/hibernate $ mvn install:install-file -DgroupId=com.nuodb -DartifactId=nuodb-hibernate -Dversion=1.0 -Dpackaging=jar -Dfile=/opt/nuodb/jar/nuodb-hibernate-1.0.jar [INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Hibernate Sample 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-install-plugin:2.3.1:install-file (default-cli) @ nuodb-hibernate-sample ---
[INFO] Installing /opt/nuodb/jar/nuodb-hibernate-1.0.jar to /Users/johnblais/.m2/repository/com/nuodb/nuodb-hibernate/1.0/nuodb-hibernate-1.0.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.501s
[INFO] Finished at: Thu Apr 11 11:59:29 EDT 2013
[INFO] Final Memory: 3M/81M
[INFO] ------------------------------------------------------------------------

Чтобы создать приложение:

/opt/nuodb/samples/hibernate $ mvn compile
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Hibernate Sample 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.4.3:resources (default-resources) @ nuodb-hibernate-sample ---
[WARNING] File encoding has not been set, using platform encoding MacRoman, i.e. build is platform dependent!
[WARNING] Using platform encoding (MacRoman actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 2 resources
[INFO] Copying 2 resources
[INFO]
[INFO] --- maven-compiler-plugin:2.0.2:compile (default-compile) @ nuodb-hibernate-sample ---
[INFO] Compiling 4 source files to /opt/nuodb/samples/hibernate/target/classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.302s
[INFO] Finished at: Thu Apr 11 11:59:41 EDT 2013
[INFO] Final Memory: 9M/81M
[INFO] ------------------------------------------------------------------------

Чтобы выполнить заявку:

/opt/nuodb/samples/hibernate $ mvn exec:java
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Hibernate Sample 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] >>> exec-maven-plugin:1.1:java (default-cli) @ nuodb-hibernate-sample >>>
[INFO]
[INFO] <<< exec-maven-plugin:1.1:java (default-cli) @ nuodb-hibernate-sample <<<
[INFO]
[INFO] --- exec-maven-plugin:1.1:java (default-cli) @ nuodb-hibernate-sample ---
Found 2 user records:
User (1/0), Username: fred, Name: Fred Flintstone, admin
home: Street: '301 Cobblestone Way', Zipcode: '00001', City: 'Bedrock'
bill: Street: '301 Cobblestone Way', Zipcode: '00001', City: 'Bedrock'
ship: Street: '1 Slate Drive', Zipcode: '00002', City: 'Granitetown'
User (2/0), Username: barney, Name: Barney Rubble, member
home: Street: '303 Cobblestone Way', Zipcode: '00001', City: 'Bedrock'
bill: Street: '303 Cobblestone Way', Zipcode: '00001', City: 'Bedrock'
ship: Street: '1 Slate Drive', Zipcode: '00002', City: 'Granitetown'
Found 2 user records:
Found 2 user records:
User (1/1), Username: fred, Name: FRED FLINTSTONE, member
home: Street: '301 Cobblestone Way', Zipcode: '00001', City: 'Bedrock'
bill: Street: '301 COBBLESTONE WAY', Zipcode: '00001', City: 'BEDROCK'
ship: Street: '1 Slate Drive', Zipcode: '00002', City: 'Granitetown'
User (2/1), Username: barney, Name: BARNEY RUBBLE, member
home: Street: '303 Cobblestone Way', Zipcode: '00001', City: 'Bedrock'
bill: Street: '303 COBBLESTONE WAY', Zipcode: '00001', City: 'BEDROCK'
ship: Street: '1 Slate Drive', Zipcode: '00002', City: 'Granitetown'
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.692s
[INFO] Finished at: Thu Apr 11 11:59:53 EDT 2013
[INFO] Final Memory: 3M/81M
[INFO] ------------------------------------------------------------------------
/opt/nuodb/samples/hibernate $

Чтобы проверить результаты, мы можем использовать nuosql для проверки данных:

/opt/nuodb/samples/hibernate $ /opt/nuodb/bin/nuosql --user cloud --password user test@localhost
SQL> show schemas
 
    Schemas containing tables
 
        SAMPLE
        SYSTEM
SQL> use SAMPLE;
SQL> show tables;
 
    Tables in schema SAMPLE
 
        ADDRESS
        BILLING_ADDRESS
        USERS
SQL> select * from users;
 
 USER_ID  OBJ_VERSION  FIRSTNAME   LASTNAME  USERNAME  PASSWORD        EMAIL        RANK  IS_ADMIN          CREATED             HOME_STREET     HOME_ZIPCODE  HOME_CITY  
 -------- ------------ ---------- ---------- --------- --------- ------------------ ----- --------- ----------------------- ------------------- ------------- ---------- 
 
    1          1         FRED     FLINTSTONE  fred               fredf@example.com    0       0     2013-04-11 11:59:53.548 301 Cobblestone Way     00001      Bedrock   
    2          1         BARNEY   RUBBLE      barney             barney@example.com   0       0     2013-04-11 11:59:53.583 303 Cobblestone Way     00001      Bedrock   
 
SQL>

Заметки

Для тех из вас, кто знаком с Hibernate, приложение использует файлы конфигурации Hibernate. Это можно было бы сделать так же легко, используя аннотации Java. Для получения дополнительной информации о Hibernate см. Http://www.hibernate.org/docs, начните с «Руководства по началу работы» для своей версии.

Чтобы узнать больше о Maven, см. Http://maven.apache.org/guides/

Неподдерживаемые функции Hibernate

NuoDB в настоящее время не поддерживает прокручиваемые наборы результатов.