Java

slim3 f:dateでorg.slim3.struts.taglib.S2Functions?

簡単な登録 → 完了という画面を作っています。その中で、SAStrutsの記事を色々とみていると、かなり便利そうな機能が多いので、早速日付とか数値をfmt:format〜で試してみました。しかし、日付の指定をすると、タイトルのようにS2Functionsと出ています、ソ…

Entity+Namesの影響はないです。

早速、テストコードを書いてみました。 メソッド名をコメントにしている理由は、まずは普通に実行し、テーブルに値が入るのを確認した後、テーブルに値を入らないようにする為です。 public void testInsert() throws Exception { //public void testInsertT…

久しぶりにS2JDBC-Genを実行

ようやくとある仕事が終わり、SAStrutsとS2JDBCとS2JDBC-Genを使用したプロジェクトを始めることができるようになりました。 この間、ブログとかも、ほとんどみている時間がありませんでした。。。朝4時に起きて、日が変わった1時に寝ていましたので。もちろ…

変更履歴の対応

DDLの変更理由を記述しないと、何を変更したのか、忘れてしまいます。 Gen-DDLでは既にこの対応ができますので、以下に記述します。 まず、 を作成し、comment、ddlinfofileを追加します。 次に、 にも同様の内容を追加します。 適当な場所に追加します。 in…

autoGenerateForeignKeyを使用しましょう

外部キーを設定する時、個別に私は設定していました。taediumさんのアドバイスより、autoGenerateForeignKeyを使用すると、全体で管理できる という事ですので、早速使用します。 元々設定していた内容はコメントにします。 @Entity public class SUser { //…

Sequenceを対応してみました

taediumさんより、多くのアドバイスをもらっております。とても感謝しています。 1つ1つ、対応していきます。 まずはEntityを作ります。 @Entity public class SPrivilege { /** userIdプロパティ */ @Id @Column(length = 5, nullable = false, unique = fa…

日付型のプロパティー

taediumさんの日記を読んでいましたら、日付のプロパティーが変更されるようです。私はTIMESTAMPは使用せずに、Date型のみ使用していますので、影響はないです。useTemporalType="true"を使用しますと、今までの記述が保持されます。これをまずは設定したい…

発想の逆転

今まではDDLありきで考えていました、DDLがありましたので。 また、私自身の考えにも変化が必要でした。 開発にて、DB設計書を作成すると、大体マクロがついています。 マクロを実行すると、DDLができ、このDDLを実行してしていきます。 その後、DDLができ、…

勝手に思いましたあったらいいな、こんな機能

改めて本家サイトをみていて、 主な機能には次のようなものがあります。 1.データベースからエンティティクラスのJavaコードを生成する機能 2.エンティティクラスからDDL(Data Definition Language)スクリプトとCSV形式のダンプデータを生成し、バージョン管…

S2JDBC-Genを使ってみて

強く感じた事は、各データベースの事をほとんど意識しないで作業ができるという事です。 開発では複数のデータベースを持っていると、型や表現方法がことなるので、 かなり神経を使いますが、S2JDBC-Genがこの部分を吸収してくれるので、 今使用しているOrac…

取得してみましょう

設定したデータを取得していきたいと思います。 その前に、サブのテーブルのテストクラスを見てみると、今回は結合をしていますので、新しいメソッドが追加されています。 SCompanyを例にとってみましょう。 public class SCompanyService extends AbstractS…

一気にテストコードを書いていきます

それでは、サブのテーブルにデータを入れます。 今回はわざと中身を確認する為に、Entityレベルのテストを数回実行ですが、実際のテストではListを挿入できるInsertBatchを使いましょう! public class SCompanyServiceTest extends S2TestCase { private SC…

sequenceのデフォルトは50です

ん? デフォルトでは以下の設定はS2JDBC-Genには入っておりません。 が、私は設定していました。理由は、テーブルが当たり前のように変更されるからです。 「override = "true"」 overwriteはデフォルトは「false」ですので、AntのXMLに何も記述をしなければ…

複数テーブル対応のその後

今回作成するスクリプト文は、以下の3テーブルであります。 メインテーブルがあり、サブテーブル2つとメインはサブテーブルのIDで関連しています。 ダブっている部分はありますが、書いていきます。 <メイン:ユーザマスターテーブル> create table S_USER…

S2BlazeDSとS2JDBCはServiceパッケージで衝突

以前、ひがさんにアドバイスを頂き、HTML + Mayaa + SAStrutsをこれから調べなければいけないのですが、横フックで別のお仕事のお話が。。。 今度はプレゼンテーションが「AIR」になります。 後ろはSpring!!!は今の私にはありえない選択肢で、Seasar2を使…

スクリプト文のダブルクォーテーションの扱い

taediumさんにアドバイスを頂きまして、朝に上手く行きませんでした問題の理由が分かりました。 「スクリプト文を作成する時、 ダブルクォーテーションを入れる→大文字・小文字の区別が発生」 「スクリプト文を作成する時、 ダブルクォーテーションを入れな…

Not CompleteWhere But SimpleWhere

koichikさんよりアドバイスを頂いたので、早速実験です。 前回のServiceClassの時とメソッド名を変えて、実行します。 public void testSimpleWhereResolve() throws Exception { SimpleWhere where = new SimpleWhere().ge("id", Long.parseLong("1")); Sim…

S2JDBC-GenでDDLを出力してみると

今までは単一テーブルでの調査をしていました。 今後は複数テーブル(Join)を見ていきます。では、早速テーブルを作成します。 まずは最初のテーブルです。<Script文(自分で作成)> CREATE TABLE "S_COMPANY" ( "COM_ID" NUMBER(5,0) NOT NULL ENABLE, "…

Serviceクラスを作成して、テストを実行する includesとexcludesNull 解決編

またまたtaediumさんよりアドバイスを頂き、includesメソッドを使用し、うまく動きました。本当に感謝しております。詳細は、以下の通りです。ServiceClass public int updateTragetData(OrderVoucher entity, CharSequence... exceptFields) { return this.…

SimpleWhereのANDとORについて

ANDとORについて、突っ込んで調べてみようと思います。ServiceClass public List findOrderVoucherSimpleWhere(Where... wheres) { return this.jdbcManager.from(OrderVoucher.class).where(wheres).getResultList(); }ServiceClass2 public List findOrder…

便利な便利なS2JDBCの機能

最近は電車の中では、印刷した本家サイトを読んでいます。 サイトを読んでいますと、かゆい所に手が届いている機能が結構あります。今回、テストを実行する前に、テストデータを予め14件設定しました。<LimitとOffset> ページング(次へ、前へ)を一覧画面…

S2JDBC-Genで作成されたEntityの型 解決編

taediumさんよりアドバイスを頂き、早速テーブルを変更しました。CREATE TABLE "ORDER_VOUCHER" ( "ID" NUMBER(9,0) NOT NULL ENABLE, "ACCOUNT_ID" VARCHAR2(10), "ACCOUNT_NAME" VARCHAR2(30), "VERSION" NUMBER(9,0) NOT NULL ENABLE, CONSTRAINT "ORDER_…

Serviceクラスを作成して、テストを実行する includesとexcludesNull

本家サイトをみていると、便利なメソッドがあります。includesというメソッドを使用すると、指定した属性のみ更新してくれます。 挿入も同じように処理ができます。excludesNullというメソッドはEntityにNullを設定していれば、Null以外の属性を更新してくれ…

S2AbstractServiceにない処理を作成して、テストを実行する

次にS2AbstractServiceでは用意されていなく、独自に作成したテストケースを書きます。 まずはInsertBatchです。要は一括処理等に使用する事が想定されます。ServiceClass public int insertAll(List entities) { return this.jdbcManager.insertBatch(entit…

S2JDBCの楽観ロックのあれこれ

楽観ロックについては、色々とみたので、別エントリーで書いてみます。まずはデータを挿入します。<Script文=今までのテストコードも同じテーブルです> CREATE TABLE "ORDER_VOUCHER" ( "ID" NUMBER(10,0) NOT NULL ENABLE, "ACCOUNT_ID" VARCHAR2(10), "…

S2JDBC-Genで作成したテストケースの実行

S2JDBC-GenでEntity・Service・Testパッケージ以下にクラスが自動生成されたので、テストケースをゴリゴリ書いてみようと思います。本家サイト、Googleでの検索結果などを見ますと、自動生成時にあるクラスはテスト用のクラスで、何も考えずに実行して、うま…

S2JDBC-Genで作成されたEntityの型

現在、データベースはOracle Express Editionを使用しています。 既にデータベースにテーブルをつくり、この時に設定した型とEntityの型は以下の通りです。メモです。Oracle EntityCHAR String VARCHAR String NUMBER Long (小数点なし) NUMBER BigDecimal (…

S2JDBCは複数スキーマ対応

今抱えている案件では、スキーマーが複数ありますので、大丈夫かなぁ、と思っていましたが、本家のサイトにしっかり追加する方法があります。メモメモ。。。2つのスキーマーを想定し、S2JDBC-Genで一気に出力!あら? 1つしかできないなぁ。。。 jdbc.dicon …

S2JDBC-Gen に挑戦!

去年のSeasar2のカンファレンスでSAStrutsとS2JDBCのセッションに参加していましたが、その時はなるほど、という感じでしか見ていませんでした。 実際に使ってみると、すごい。これだけのクラス(EntityとServriceとTest等)を自動生成してくれると、あとが…

SAStrutsしかないですね

昨日、電車の中で調べましたが、やはりSAStrutsははずせないですね。 時間との戦い、私以外の人が保守を担当、という事が既に明確になっていますので、 ・誰にでもわかりやすいこと=学習コストが低いこと ・ユースケース単位での追加機能が容易にでき、他の…