[Seasar-user:16955] Re: [s2jdbc]プライマリキーが無くユニークキーのみが存在するEntityの削除について

山田 祐己 [E-MAIL ADDRESS DELETED]
2009年 2月 19日 (木) 18:30:02 JST


小林様

お世話になります。山田です。

> 不可です.
>   
やはりそうですか。

> そんな場合こそ自動生成とか書いてみるテスト.
> 大抵,パラメータ Dto はエンティティがそのまま
> 使えるんじゃないかと.
>   
確かに、パラメータ Dto はエンティティそのまま使用できそうですし、
自動生成すれば、それほどの負担にはならないですね。
無精で恐縮です。

じつは今回、はじめてDoltengのプロジェクトを作成して、s2jdbc-genで
エンティティを生成したのですが、エンティティ以外にも、サービスクラスが
出来るじゃないですか。
そこで、サービスクラスのAbstractに以下のメソッドを追加したのです。

public final void delete(final SimpleWhere simpleWhere) throws Exception {
List<T> list = select().where(simpleWhere).getResultList();
for (T t : list) {
delete(t);
}
}

この方法で、プライマリキーの付いているエンティティは、
simpleWhereだけ作成して渡せば、可変の条件でも一括削除が出来るので
ユニークキーのみのエンティティでもこれで、出来ればと思った次第でした。
実際、対象エンティティの半分位は、この方法で手が抜けましたので、
残り半分は、updateBySqlFileで挑戦してみます。

> っていうか,そんなに多くのテーブルで主キーが
> ない (キーに null を許容する) のでしょうか?
> そっちの方が大問題だと思いますが,きっとどうにも
> ならないのでしょうね.
>   
仰るとおりです(苦笑)
過去の資産のマイグレーションに関わると、皆さん、
きっと同様の苦労をされているのでしょうね。

有難うございます。

山田 祐己(Yuki Yamada)
E-Mail [E-MAIL ADDRESS DELETED]




Seasar-user メーリングリストの案内