2.2.5.3.3. Many-to-many 多対多

2.2.5.3.3. Many-to-many | 目次 | 2.2.5.4. Transitive persistence with cascading> 2.2.5.3.3.1. Definition 多対多関連は @ManyToMany アノテーションで定義されるよ。@JoinTable アノテーションで関連テーブルと結合条件を書かないといけないよ。関連が…

2.2.5.3. Collections コレクション

2.2.5.3. Collections | 目次 | 2.2.5.3.3. Many-to-many> 2.2.5.3.1. Overview 概要 Collection、List(順序ありでもなしでも)、Map、Set にマッピングできるよ。EJB3 仕様では、@javax.persistence.OrderBy アノテーションを使って順序つきリストにマップ…

2.2.5. Mapping entity bean associations/relationships

2.2.4. Mapping inheritance | 目次 | 2.2.5.1. One-to-one> 2.2.5.1. One-to-one 2.2.5.2. Many-to-one 2.2.5.3. Collections 2.2.5.3.3. Many-to-many 2.2.5.4. Transitive persistence with cascading 2.2.5.5. Association fetching

2.2.4. Mapping inheritance. マッピング継承

2.2.3. Mapping identifier properties | 目次 | 2.2.5. Mapping entity bean associations/relationships>EJB3 は3つの継承の方法をサポートしてるよ。 クラス毎のテーブル戦略: Hibernateでの クラス階層毎に1つのテーブル戦略: Hibernateでの ジョインド…

2.2.3. Mapping identifier properties. IDのマッピング*1

2.2.2.2. Declaring column attributes | 目次 | 2.2.4. Mapping inheritance>@Id アノテーションはエンティティBeanの識別子を定義するよ。このプロパティはアプリケーションでもセットできるけど、Hibernateで生成させたほうがよいよ。@GeneratedValueアノ…

2.2.2.2. Declaring column attributes. カラム属性の宣言

2.2.2. Mapping simple properties | 目次 | 2.2.3. Mapping identifier properties>プロパティマッピングに使われるカラムは、@Column アノテーションで定義できるよ。デフォルト値を上書きするときに使うよ。詳しくは EJB3 仕様を参照。次のプロパティに使…

2.2.5.2. Many-to-one 多対一

2.2.5.2. Many-to-one | 目次 | 2.2.5.3. Collections>多対一関連は @ManyToOneアノテーションをプロパティレベルに宣言するよ。 @Entity() public class Flight implements Serializable { @ManyToOne( cascade = {CascadeType.PERSIST, CascadeType.MERGE}…

2.2.5.1. One-to-one 一対一

2.2.5. Mapping entity bean associations/relationships | 目次 | 2.2.5.2. Many-to-one>@OneToOne を使って、エンティティBeanに1対1関連を関連付けることができるよ。1対1関連は3つの方法があるよ。同じ主キーを共有する方法、一方のエンティティが外部キ…

2.2.2. Mapping simple properties. 単純なプロパティのマッピング

目次 2.2.2.1. Declaring basic property mappings. Basicプロパティマッピング宣言 エンティティBeanの、@Transientが付いていない、staticでもtransientでもない全てのプロパティ(フィールドでもメソッドでも)は永続化するとみなされるよ。アノテーショ…

Chapter 2. Entity Beans. 第2章 エンティティ Bean

Chapter 1. Setting up an annotations project | 目次 | 2.1. Intro> 2.1. Intro 2.2. Mapping with EJB3/JPA Annotations 2.2.1. Declaring an entity bean 2.2.2. Mapping simple properties 2.2.2.2. Declaring column attributes 2.2.3. Mapping identi…

Chapter 1. Setting up an annotations project. 第1章 アノテーションプロジェクトのセットアップ

Preface 序文 | 目次 | Chapter 2. Entity Beans> 1.1. Requirements 必要要件 Hibernate Annotations の廃物を Hibernate の website からダウンロードして解凍してね。 このリリースは Hibernate Core 3.2.0 GA 以降が必要だよ。 このリリースは Hibernate…

Hibernate Annotations Reference Guide インデックス

Hibernate Annotations のリファレンスガイドの日本語訳がなかったので、ざっくり訳してみる。間違い等指摘いただけるとありがたいです。原文: http://www.hibernate.org/hib_docs/annotations/reference/en/html_single/Table of Contents Preface 序文 Ch…

Preface 序文

目次 | Chapter 1. Setting up an annotations project>Hibernate では、他の O/R マッピングツールとおんなじように、変換するためのメタデータが必要だよ。 Hibernate 2.x では、マッピングのためのメタデータはほとんど XML ファイルだったよ。他の選択肢…

2.2.1. Declaring an entity bean. エンティティBean宣言

2.2.1. Declaring an entity bean | 目次 | 2.2.2.2. Declaring column attributes>永続化するPOJOは エンティティBeanってことで、@Entity アノテーションを使うよ。(クラス定義につけてね) @Entity public class Flight implements Serializable { Long …

2.2. Mapping with EJB3/JPA Annotations. EJB3/JPAアノテーションによるマッピング

2.1. Intro | 目次 | 2.2.1. Declaring an entity bean>EJB3.0 エンティティは、POJO だよ。実は、Hibernate の 永続化エンティティとおんなじだよ。マッピングは JDK 5.0 のアノテーションで定義されるよ。アノテーションは、論理マッピングアノテーション…

2.1. Intro. イントロ

Chapter 2. Entity Beans | 目次 | 2.2. Mapping with EJB3/JPA Annotations>この章では EJB 3.0(俗に言う Java Persistance)エンティティ アノテーションと、Hibernateの拡張についてだよ。

Mac OS X (10.4/Tiger)でSQLiteを使う際の注意点

Mac OS X 10.4 には標準で SQLite がインストールされているのだが、そのままでは問題あるらしい。 http://wiki.rubyonrails.org/rails/pages/HowtoUseSQLite ここの最後の方、Q: On Mac OS X (10.4/Tiger), I’m getting an error during migrations: に書い…

Railsによるアジャイル〜 rail2.0版 イテレーションA1

「RailsによるアジャイルWebアプリケーション開発」第2版にそってrails2.0でやってみる。6章のチュートリアルから。 ちなみに、rails2.0の参考したのは、http://api.rubyonrails.org/ 6.1 イテレーション A1:動くものを作る railsアプリケーションの作成 …

pluginのインストールとか

Railsでは追加機能や、基本機能の拡張などを plugin という方法で行います。pluginは様々なところで公開していて、プロジェクトごとにインストールして使用します。pluginの管理には基本、script/plugin を使います。このコマンドでSVNを使ってネットから必…

Criteria で Fetchmode.JOIN を使用した時の注意点

hibernate を使っていて、普段は 関連を lazyで扱いたいんだけど、あるポイントではlazyをfalseにして使いたい、ということがよくある。その場合、マッピングファイルのほうでは lazy=true にしておき、呼び出すプログラムのほうで明示的に FetchModeを変え…

Rails 2.0.2でサンプルアプリ

ちょっとましなサンプルを2.0.2の作法で作ってみることにする。 参考:http://www.kestrel.jp/modules/tinyd04//content/index.php?id=1上記URLを参考に、rails2.0流に。 1.ベースの作成 適当なところで、いつものベースの作成 $ rails rails_2.0-sample cr…

rails 2.0でscaffold

railsのバージョンを2.0にして、sqliteを使うようにしたので、初めから scaffoldで作ってみることにした。が、色々と変更されていて非常にはまった。。。 参考:http://d.hatena.ne.jp/idesaku/20071211/1197386955これまでだと、データベースにテーブルを作…

rakeでmigration

最近の rails はテーブルの作成は、rake の migration というのを使うらしい。 http://www.atmarkit.co.jp/im/carc/serial/proto04/proto04.html (↑この記事は細かいところが結構間違っている。。) RakeはRuby Make、つまり、Ruby版のビルドツールで、それ…

2.0.2にアップデート

railsは2.0.2からSQLiteが標準のDBになったらしい。なので、さっそくアップデートしてみた。 gem install rails -r -y ・・・

SQLiteでRoR

Railsでは標準でMySQLとかDB2とか使えるんだけど、もっと手軽にSQLiteで使いたいと思って入れてみた。http://www.machu.jp/diary/20070117.html#p01 この辺を読むと、SWIGが入ってないとだめらしいので、それも最初に入れる。 # port install swig > Fetchin…

dailyログ切替のバグ?

mac

Mac OS X 10.4 Tigerでは、デフォルトで深夜3:15にログ収集を行うスクリプトが実行される。これは /System/Library/LaunchDaemons/com.apple.periodic-daily.plist で定義されている。こいつが、/usr/sbin/periodic を起動するのだが、これにちょっとしたバ…

ユーザ追加

MySQLのユーザ追加。hogeというデータベースにアクセスできる、fugaというユーザを作る。 # mysql -u root -p Enter password: ********** mysql> create database hoge; mysql> grant all on hoge.* to fuga@localhost identified by '********'; 上記設定…

rootのパスワード忘れ

ユーザを追加しようとしたら、rootのパスワードを忘れてしまっていた。。そういうときは、一度 mysql を落として、権限テーブルを見ないように起動して、user テーブルを書き換えるといいらしい。その際、-u rootを指定して、rootユーザじゃないといけないよ…

mac に ruby インストール

Tigerには既に ruby が入ってるのがだが、versionがちょっと古いので新しいのを入れ直す。入れる方法は、いつもの通り、MacPortsを使用。一応バージョンなんかを確認。 # port info ruby ruby 1.8.6-p110, lang/ruby (Variants: universal, darwin, darwin_9…

XML、XMLList、XMLListCollectionの違い

FlexでXMLを扱うのに、XML、XMLList、XMLListCollectionと、3つほどタイプがあって、いまいちこの違いが理解できていない。今回のその整理。まずそのまえに、ArrayとArrayCollectionから。Arrayとは単純な配列だが、これもArrayCollectionというものがある。…