アンダースコア記法をキャメル記法に

テーブルのカラム名をEnumにして、関連づけを全部そこに任せていたんだけど、
ApacheCayenneはカラム名などをキャメル記法で渡す。う゛ぁーって感じ。
なので変換メソッドを作った。

	public static String camelize(String s){
		char[] c = s.toLowerCase().toCharArray();
		StringBuilder r = new StringBuilder(s.length());
		int diff = 'A' - 'a';
		for (int i = 0; i < c.length; i++) {
			if (c[i] == '_') {
				r.append((char)(c[++i] + diff));
			} else {
				r.append(c[i]);
			}
		}
		return r.toString();
	}

動作良好。

ApacheCayenneに関する備忘録

どんどん追加していこう。

  • CayenneModelerでモデリングするとカラムの順番が滅茶苦茶になる
    しっかり順番意識して作ってもpkカラムがテーブルの中央にきたりするありえなさ。
    なので、別のモデリングソフト使ってモデリングしてSQL発行してテーブル作ってます。
    ただ、auto_pk_support忘れがち。
  • DataObject <=> PK
    http://cayenne.apache.org/doc20/dataobjectutils.html
    DataObjectUtilsという便利なクラスがあって、それを使ってPKとDataObjectの相互変換が簡単にできる。