アンダースコア記法をキャメル記法に
テーブルのカラム名を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();
}
動作良好。
