「seasar2」カテゴリーアーカイブ

Seasar2 S2JDBC プライマリーキー以外でのDELETE

流れるようなインターフェイスでは、プライマリーキー以外を指定して

削除等行なえないようなので、SQLファイルを用いる。メソッドは以下

updateBySqlFile。

(例)

private static final String DELETE_SQL_FILE = “sql/delete.sql”;

Entityに条件をセットして、引数にセット。

 jdbcManager.updateBySqlFile(DELETE_SQL_FILE, entity).execute();

java seasar2 jsp EL 式 Mapのデータ表示 

seaser2使用している場合です。
//フォーム
public class TestForm {

 public Map<String, String> testMap = null;

}

//アクションでのFormの定義

 @ActionForm
 @Resource
 public TestForm testForm = null;
//アクションでMap詰める
Map<String, String> testMap = new LinkedHashMap<String, String>();
for(int i = 0; i <= 23; i++) {
 testMap.put(String.valueOf(i), String.valueOf(i*10));
}
testForm.testMap = testMap; 
//jsp
<c:forEach var=”testMap”  items=”${testForm.testMap}”>
 <bean:define id=”key”  name=”testMap” property=”key” ></bean:define>
 <bean:define id=”value”  name=”testMap” property=”value” ></bean:define>
 <c:out value=”${f:h(key)}”></c:out>
 <c:out value=”${f:h(value)}”></c:out>
</c:forEach>

Seasar2 Gen-Ddlの時の外部キー

Gen-Ddlを実行すると、所定の位置に、createとdropと言うディレクトリが作成され、
Entityを基にした、生成・削除用のsqlファイルが作成される。
ここで問題発生。。
それは、外部キー名がDB作成時に
ADD CONSTRAINT Foreign keyで指定したキー名と異なることだ。

どうやら、テーブル名_FK_1、2となっていくようだ。
実際には、FK_テーブル名_0、1~という名前を付けていると、Dropされずに
その後の処理が失敗してしまう。

とても便利なFWなので、ここらへんもどうにかならないものだろうか・・・