EclipseLinkのセットアップ手順(JavaSE)
EclipseLinkをJavaSEで使用する手順です。DBにはApache Derbyを使用して、エンティティを永続化するところまでを説明します。なお、JPAやApache Derbyについての説明はしません。
Apache Derbyのダウンロード、セットアップ
Apache Derbyからファイルをダウンロードして、適当なフォルダに展開します。Apache Derbyのセットアップはこれだけです。簡単。
データベース、テーブルの作成
%DERBY%/bin/startNetworkServer.batを実行して、Apache Derbyを起動します。
%DERBY%/bin/ij.batを実行します。connectコマンドを使用して、データベースを作成 & 接続します。
connect 'jdbc:derby://localhost:1527/foo;create=true';
create table文を実行して、テーブルを作成します。
create table foo ( id integer primary key, name varchar(100) not null );
EclipseLinkのダウンロード、セットアップ
EclipseLinkからファイル(EclipseLink 2.0.0 Installer Zip)をダウンロードして、適当なフォルダに展開します。
次のファイルをクラスパスに追加します。
- %ECLIPSELINK%/jlib/eclipselink.jar
- %ECLIPSELINK%/jlib/jpa/eclipselink-jpa-modelgen_2.0.0.v20091127-r5931.jar
- %ECLIPSELINK%/jlib/jpa/javax.persistence_1.0.0.jar
- %ECLIPSELINK%/jlib/jpa/javax.persistence_2.0.0.v200911271158.jar
ついでに、Apache Derbyのjarファイルもクラスパスに追加します。
- %DERBY%/lib/derbyclient.jar
persistence.xmlを作成
クラスパスの通っているフォルダにMETA-INFフォルダを作成して、そこにpersistence.xmlファイルを作成します。
<?xml version="1.0" encoding="UTF-8"?> <persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence persistence_1_0.xsd" version="1.0"> <persistence-unit name="my-app" transaction-type="RESOURCE_LOCAL"> <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> <exclude-unlisted-classes>false</exclude-unlisted-classes> <properties> <property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.ClientDriver" /> <property name="javax.persistence.jdbc.url" value="jdbc:derby://localhost:1527/foo" /> <property name="javax.persistence.jdbc.user" value="APP" /> <property name="javax.persistence.jdbc.password" value="APP" /> </properties> </persistence-unit> </persistence>
エンティティを作成
エンティティのクラスを作成します。
package foo; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; @Entity @Table(name = "foo") public class FooEntity { @Id private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
とりあえずエンティティをCreate
main()を次のように作成します。
EntityManager em = Persistence.createEntityManagerFactory("my-app").createEntityManager(); try { em.getTransaction().begin(); FooEntity foo = new FooEntity(); foo.setId(1); foo.setName("foo"); em.persist(foo); em.getTransaction().commit(); } finally { if (em.getTransaction().isActive()) { em.getTransaction().rollback(); } em.close(); }
実行して、正常終了することを確認したら、ij.batでselect * from fooとでもしてレコードがちゃんと作製されていることを確認します。