Eclipse 3.7 で JPA (Java Persistence API) の Entity クラスを自動生成する方法について。
JPA における Entity クラスとはデータベースへのデータの出し入れを簡単に行うためのオブジェクトを定義するためのもの。Entity クラスがテーブルのスキーマ定義で、そのインスタンスが 1 レコードと考えるとイメージしやすいかもしれない (実際には結合などで生成されることもあるから必ずしもテーブルと 1 対 1 ではないが)。
IDE | Eclipse 3.7 (Indigo) |
---|---|
Plugins | Dali Java Persistence Tools - Eclipse Link JPA Suppor 3.0, JPA Diagram Editor 1.0, JPA Support 3.0 Eclipse Java EE Developer Tools 3.3 |
Database | MySQL 5.5.14 |
Eclipse 3.7 で Aptana Studio 3 を導入して Ruby on Rails 3 開発環境を構築するまでの手順です。JRuby で行っておりますが普通の Ruby でも作業は同じですので参考にしてください。Aptana Studio 3 Getting Started も参照。
Eclipse | Eclipse 3.7 (Indigo) |
---|---|
Aptana | Aptana Studio 3.0.4 |
Java | Oracle JDK 1.6.0u26 |
Ruby | JRuby 1.6.4 (ruby-1.9.2-p136) |
Rails | Rails 3.0.10 |
JRuby 1.6.4 をインストールした後に gem
から Rails 3.0.10 をインストールしてみた。
OS | Windows XP |
---|---|
Ruby | JRuby 1.6.4 (ruby-1.9.2-p136) |
Java | Oracle JDK 1.6.0u26 |
Rails | Rails 3.0.10 |
JRuby 1.6 は Java で実装された Ruby 1.8.7 / 1.9.2 互換のプラットフォーム、つまり Java VM 上で Ruby を動かすためのツールと Java ライブラリです。今回は JRuby 1.6.4 のインストールについて。
OS | Windows XP |
---|---|
Ruby | JRuby 1.6.4 (ruby-1.9.2-p136) |
Java | Oracle JDK 1.6.0u26 |
諸事情により au INFOBAR A01 の内部構成を開発用に変更する必要が出たため、Windows に Android SDK をインストールする方法について覚書を記しておきます。
なお Android SDK 実行には Java SE 6 (1.6.0u26) 以上が必要ですのであらかじめインストールしておいて下さい。
今更ですが ORM (Object-Relational Mapping) とその Java 標準である JPA (Java Persistence API) について幾つか調べてみたまとめ。
フレームワーク | ライセンス | JPA | 備考 |
---|---|---|---|
Oracle TopLink | Oracle License | 2.0 | Oracle 製品。TopLink Essentials (TopLink のオープンソース版) は EclipseLink に置き換えられています。 |
EclipseLink |
Eclipse Public License, Eclipse Distribution License |
2.0 | JPA 以外にも JAXB や DBWS などが含まれていて多機能。TopLink をフォークして開発が進められている。 |
Hibernate | LGPL | 2.0 | iBATIS と並ぶ古くからの ORM。軽量が売りだったはずが最近ではめっきり重量級になってしまった感。 |
Apache OpenJPA | Apache License 2.0 | 2.0 | JPA のみで使う分にはシンプルで機能も一通り充足していておすすめ。 |
MyBATIS | Apache License 2.0 | × | SQL をゴリゴリ書く開発向け。 |
iBATIS | Apache License 2.0 | × | 現在開発は中止され MyBatis に移行している。 |
JPA か否か
JPA は新規開発でテーブル定義も自由に行え、パフォーマンスや将来的なメンテナンス要件より設計上の整合性を優先できる場合に向いている。Ruby on Rails の ActiveRecord なんぞを知っているならこちらの感覚が近い。
JPA を素直に使っている分には基盤の JPA フレームワークの差し替えが容易なのも魅力的。
逆に JPA は SQL をゴリゴリ書かなければならないような開発には向いていない。つまり、既存システムのテーブルを使わなければならない場合や、パフォーマンスのための非正規化が行われたり DB 固有の SQL を発行しなければならないようなケース。多くの SI 系業務システムはこちらではないかな。
Eclipse で使うには
Software Install から Java EE と Dali をインストールする。デフォルトで EclipseLink が使用されるが後での差し替えは容易なのでそのまま開発してもよい。
CentOS 5 には安定と実績の (一度設定したらあまり触りたくないとも言う) sendmail が標準でインストールされていますが、システム開発で使用するのであれば拡張アドレスの使える Postfix の方が良いと思っております。 そんなわけでこの記事では Sendmail を Postfix に入れ替える方法を記述しております。
OS | CentOS 5.5 final Kernal 2.6.18-194.el5xen |
---|---|
MTA | Postfix 2:2.3.3-2.3.el5_6 |
自宅サーバで MQ を使う用事が出来たので Apache ActiveMQ を入れてみるとします。
Apache ActiveMQ™ は Java で実装された Message Queue。最新版の 5.5 では JMS 1.1, J2EE 1.4 に準拠しておりフェールオーバーや分散トランザクションにも対応している。オープンソースの MQ ミドルウェアの中では機能、ナレッジともに一番安定していてエンタープライズ向きではないかと思う。Jetty 上に構成されておりブラウザから駆動状況を管理できるようです。
OS | CentOS 5.6 final Kernel .6.18-238.el5xen |
---|---|
Javaランタイム | Oracle Java SE 6u26 |
インストール先 | /usr/local/activemq5.5 |
ポート | HTTP:8161, MQ:61616, (JMXはデフォルトで不定) |
仕事で 5.5 系の MySQL を何度かビルドしているのだが、毎度毎度手順やコンパイルオプションを確認するのも手間なので自宅検証機での MySQL バージョンアップを機に手順をまとめておこうと思う。本家のInstalling MySQL from a Standard Source Distribution も参照。
この記事の前提条件は以下の通り。
OS | CentOS 5.6 final Kernel 2.6.18-238.el5xen |
---|---|
MySQL | MySQL 5.5.15 (Source Distribution) |
インストール先 | /usr/local/mysql |
データディレクトリ | /srv/mysql |
実行アカウント | uid:mysql(901), gid:mysql(901) |
エンジン | InnoDB |
文字セット | UTF-8 |
CentOS 5.6 で MySQL 5.5 をビルドするのに必要なライブラリは以下の通り。
gcc-c++
(yum でインストール)ncurses-devel
(yum でインストール)- CMake
勢いで全て sudo で行っているが、きっと root ユーザで行った方が楽かと思う。