Oracle版とBasic版にもある依存性解決
現在のCROSSFIRE O/Rにも、次期製品Dependecy Walkerをにおわせる部分がちょっとだけある。
たとえば、CROSSFIRE O/Rでは、外部キーによるリレーションも扱うことができます。テーブル情報の入力から、そのテーブルに対応したJavaBeanが自動的に作成されます。
下の場合は、TOYテーブルのOWNERが外部キー。
CHILDRENテーブル用のBean(自動生成)
public class Children {
private Integer id;
private String name;
private Timestamp birthDay;
// ↓自動的に参照されている状況を認識して加えられる
private List ownerToyRefList = new LinkedList();
//(中略)
}
TOYテーブル用のBean(自動生成)
public class Toy {
private Integer id;
private String toyName;
private Integer owner;
// ↓OWNERが外部キーなので自動的に付けられる
private Children ownerChildrenRefObj = null;
//(中略)
}
この例は、「テーブル情報の入力」に対する入力になっています。この場合、子供(CHILDREN)がおもちゃ(TOY)を持っているという簡単な1:多のリレーションのモデルです(子供が1、おもちゃが多)。
でも、まだ、外部キーを「これは外部キーだよ」と、設定しなくてはいけないのがめんどくさい。
特に、OracleDBからリバースエンジニアリングを行ったときに、外部キーの設定は問題になるところだ。
そこで、次期製品Dependecy Walkerでは、一つマニュフェストを宣言しようと思う。
■マニュフェストその1
外部キーは、そのテーブルの使われ方を次期製品Dependecy Walkerが見て、勝手に設定する。