S2Dao
S2DaoからPostgreSQLのストアドプロシージャーを呼び出そうとしてるのですが、 引数に配列を使ってると、以下のようなエラーが出てしまう。 org.postgresql.util.PSQLException: Cannot cast an instance of [Ljava.lang.Integer; to type Types.ARRAYここで…
今日、ハマったこと。 S2Daoのメソッドで戻り値を boolean にしてる場合、自分の中では検索条件にヒットするものがあれば true を返すものとばかり思っていたが、違っていた。 正確には戻ってきた行の先頭カラムが「null」かどうかを返しているようだ。 自動…
エンティティを取得する時に、nullだったら指定した例外を投げるということはできないのかな? そもそも、そういう処理をDaoにさせるのは良くないのかな。
更新の対象は1行(実際:0)でなければなりません。とエラーが出るのは、既にない行に対して更新をかけてるから? 対象が無かったら無かったでOKなんだけど、その場合はどうしたらいいんだろ。
mvn installすると [INFO] Failed to resolve artifact.GroupId: org.apache.maven.plugins ArtifactId: maven-jar-plugin Version: 2.1-SNAPSHOTReason: Unable to download the artifact from any repository org.apache.maven.plugins:maven-jar-plugin:p…
SQLファイルのバインド変数にOGNLって書けなくなってたんですね。 今の案件で、どうしてもインタフェースは変えたくなくて、 SQLに値を渡したいんですけど何か良い方法ないですかねぇ。 ソース見る限りではなさそう・・・
テーブル名と同じカラム名を持つものが関係を持っていると、プロパティ名がダブる。 カラムアノテーションを使えばいいのかも知れないけど、何かダサいのでテーブル変更しよう。 単純なもの以外は、自動生成のSQLでやり切ろうとするのは絶対無理だな。 やっ…
Date型のプロパティにS2Daoから値を入れるとjava.sql.Timestampが入っているようなのですが、 そんなことは知らずに日付の比較をするためにcompateTo(Date target)を使うわけです。 JVM1.4では動くのですが、JVM1.5になるとClassCastExceptionでエラーになり…
バージョンの依存関係が公式HPに書かれていなくてさっぱり分かりません。 また、バージョンアップしたときにどのファイルを置き換えればいいのかも分かりません。 S2.3.3 => S2.3.4 S2Dao1.0.28 => S2Dao1.0.29 でハマりました。 S2Daoはdao.diconが変わって…
先日Tomcatだと動くがOAS10gだとエラーが出てた件ですが、解決しました。 使用していたJDBCドライバが違っていたのが原因でした。 J2EE1.4だと、PreparedStatement#executeQueryで「SELECT」を含んでいても大丈夫(たぶん)だけど、J2EE1.3だとNGというのが…
insertBatch(List list)とした場合に、SQLファイルは使えないのでしょうか? ソースを見る限りでは使えそうにありません。 試しにSQLファイルを書いてみると単発のinsertとして実行された。 なんとかならんかのー
以前DTOアノテーションを作ったけど、EntityManagerには対応してませんでした。 EntityManagerに対応させようとソースを見たのですが、 決めうちでResulSetHandlerを返してました。 ちょっと簡単には対応できなさそう。
SQLコメントにOGNLは使えないのでしょうか? 引数で渡す前に処理しておけってことかな。 追記 S2DaoのSQLコメントで、SQL文をバインディングすることはできないのでしょうか? 下記のような場合で、シーケンス「SEQ」から値を取得したい場合に、 getSequence…
とりあえずできました。
すなあそびの宴会時にひがさんに聞いたときに、「そんなに難しくないよ」って言われたけど、やっぱり難しい。 DaoMetaDataImplだけ触ればいいよ。みたいなこと言われたけど、ソースを見た限りだめなような気がする。 AbstractBeanMetaDataResultSetHandler#c…
自分なりにソースをいじってみたけど、ダメだった。 BEANアノテーションで作られたクラスを結構見てるので、 そこをDTOとすりかえるのは簡単にはできないような感じだ。 明日作者に聞いてみよう。
N:1で1側のオブジェクトがセットされない原因判明。 単に1側の主キーを取得してないからセットされてなかっただけみたい。 考えてみれば当たり前のことだった・・・
昨日言ってたinsert系のメソッドは中身を書かなくてもちゃんと動いているみたい。 でも、なんか気持ち悪いなぁ。 間違い、やっぱり入らない。 もう一つのN:1マッピングはいけてる。 EntityManagerを使いつつinsertとかも一つのDaoでやりたい場合はどうすれば…
QUERYアノテーションでWHERE句を書いているとN:1マッピングされないけど、 EntityManagerを使えば上手くいくのかな? とりあえず明日試してみよう。 この場合insertとかupdateはどうなるのだろう。 インタフェースだから実装する必要あるのかな、でも中身は?…
Hibernateのcascadeみたいに関連付いたテーブルのデータを消すことはできないのかなぁ それ以前に外部キーはってないからだめかなぁ
S2Daoって今INSERTした主キーの値って取れないのかなぁ。 Hibernateは取れたのになぁ。 追記 取れました。 が、始めIDアノテーションのstaticが抜けているのに気が付かずにずっと 取れねー! ってハマってました。 これで一つ先に進める。
昨日作ったDaoのテストケースを書いてみようと思います。 AccountDaoTest.java package test.org.seasar.application.gusuku.dao;import java.util.List;import org.seasar.application.gusuku.dao.AccountDao; import org.seasar.dao.unit.S2DaoTestCase; i…
下記のテーブルを使用します。DBはhsqldbです。 CREATE TABLE ACCOUNT ( ACCOUNTID INTEGER NOT NULL IDENTITY PRIMARY KEY , USERID LONGVARCHAR NOT NULL , PASSWORD LONGVARCHAR NOT NULL , EMAIL LONGVARCHAR NOT NULL , NAME LONGVARCHAR NOT NULL , RD…