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が見て、勝手に設定する。