Spring3(というかJSR-303)でBeanValidationのテスト Spring3にはJSR-303のBeanValidationの機能が実装されています。 これのテストの仕方について調べていました。 対象のコード 例えば以下のようなBeanがあるとします。 public class User { private int userId; private String userName; // getter/setter } これに、以下のような制約を加えたいとします。 userId 1以上の数字 9桁以内 userName 20文字以内 必須項目 BeanValidation実装後の修正コード 必要なアノテーションを設定すると以下の通りになります。 public class User { @Min(value=1) @Max(value=999999999) private i
代替キーの一意性の保証 JPAを使用しているとき、エンティティの属性値の一意性を保証するのにはどうしたら良いのだろうか。 IDフィールド(@Id)を一意(ユニーク)に保つのは容易だ。同じID値で、エンティティを作成[EntityManager#persist()]しようとすれば、EntityExistsExceptionがスローされる。これをキャッチしてしかるべく処置すれば良いのだから。 問題は代替キーの方である。 DBMSの整合性制約の活用 永続フィールドに @Column(unique = true) を指定すれば、DBMSレベルで一意性を保証してくれる。しかし、これをJPAでハンドリングするのはやっかいだ。 一意性に違反したとき、つまり、同じ属性値を持ったエンティティを作成しようとしたときには、PersistenceExceptionがスローされる。これは、SQLExceptionと
サーブレットでは、HttpSessionインターフェイスを使ってセッション管理を行うことができますが、JSPでもセッションに関する設定を行うことができます。 JSPの<%@ page %>タグにはsessionという属性があり、この属性にtrue/falseを指定することで、セッションに関する設定を行います。 ■セッションの使用を宣言する <%@ page session="true" %> このJSPタグでセッションを使用することを宣言します。もし、サーブレットやほかのページですでに開始されているセッションがあれば、そのセッションオブジェクトを使用します。セッションがまだ開始されていなければ、ここで新たに開始し、セッションオブジェクトも作成します。 ※session属性の指定を省略すると、session="true"が設定されたものと見なされます。 ■セッションを使用しないことを宣言する
xmlファイルによるトランザクション設定 前回までの設定では、トランザクションの設定は、beans.xml ファイルの以下の箇所で行っています。 <!-- Transaction Advice --> <tx:advice id="readWriteAdvice" transaction-manager="txManager"> <tx:attributes> <tx:method name="*" propagation="REQUIRED" /> </tx:attributes> </tx:advice> <!-- aop --> <aop:config> <!-- for read-write operations --> <aop:pointcut id="readWriteOperationPointCut" expression="execution(* domain.serv
ページングしたいときとか、SELECTで取れる範囲を指定したいときってある。このSELECT文の結果のうち○行目から×行目までだけ欲しい、みたいな。 Oracleだとrownum、MySQLだとlimitが使えるけど、DB2だと。。。そういうの無さそう。 でも「先頭から○件表示する」っていうのは「fetch first xx rows only」でできることがわかったのでこれを使ってやれば以下のようにして範囲(行数)指定できる。 (11行目から5行分取得する) select * from EMPLOYEE except (select * from EMPLOYEE fetch first 10 rows only) fetch first 5 rows only
JavaSE5から導入されたGeneric(型パラメータ)の機能とJPAを使えば各Entity(DBのテーブル)に対するDaoを作成する必要がなくなります。 まずEntityクラスのインターフェースを作成します。 public interface IEntity extends Serializable{ } この段階ではマーカーインターフェースの役割ですが、次回以降機能拡張する場合にこれが役に立ちます。 次はGenericなDaoのインターフェースを作成します。 public interface IGenericDao<E extends IEntity,PK extends Serializable> { E findByPrimaryKey(PK primaryKey); void persist(E entity); void merge(E entity); void remov
はじめに 表題の通り,POP3クライアントをSocketとJavaMailを使って作り比べてみよう. まず,動作環境は以下の通り. Microsoft Windows XP Professional SP1a Java 2 SDK Standard Edition 1.4.2_04 JavaMail 1.3.1 JAF(JavaBeans Activation Framework) 1.0.2 こんな要件としよう.プログラムを単純にするために,GUIは使わずコマンドラインだ. プログラムを起動すると,コマンドラインにread:を表示してコマンドの入力を待つ 入力可能なコマンドはlist/read/quitの3種類 listでメールサーバにあるメールの件数を表示 read NでN番目のメールの内容を表示.例えば,2通目のメールを表示する場合はread 2と入力 quitでプログラムを終了 受
不達Eメールの処理ってどうやってるんですかねぇ? TOにメールが届かなかった場合、エラーメールが返ってくると思います。そのメールのフォーマットって結構違うと思うのですが、そのパーサとかそこらへんの話しになるんですかね?
すべて Microsoft 製品 Microsoft 365 Office Windows Surface Xbox セール サポート ソフトウェア Windows アプリ OneDrive Outlook Skype OneNote Microsoft Teams PC とデバイス Xbox を購入する アクセサリ VR & 複合現実 エンタメ Xbox Game Pass Ultimate Xbox Live Gold Xbox とゲーム PC ゲーム Windows ゲーム 映画とテレビ番組 法人向け Microsoft Azure Microsoft Dynamics 365 Microsoft 365 Microsoft Industry データ プラットフォーム Power Platform 法人向けを購入する Developer & IT .NET Visual Studio
harukiです。 メールを送信するサイトの場合、メールアドレスのクリーニングは定期的に行うべきです。 そのためにはエラーメールを解析しなければなりません。 そこで、エラーメールの種類をまとめてみました。 SMTPエラー 存在しないメールアドレスや、正しい形式でないメールアドレスの場合は、 DoCoMo,au,SoftBankの3キャリアともSMTPエラーになります。 例として、以下の条件でメールを送信したとします。 From: sender@example.com Return-Path: bounce@example.com To: アドレス@docomo.ne.jp MTAにより異なりますので、ここではPostfixを例にします。 Postfixではmultipart/reportのメールがbounce@example.comに届きます (※ 必要な情報のみに省略しています
データベースから検索した結果を一定の行数ずつ画面に表示するという処理がしたい場合があります。GoogleやYahooの検索結果のように、最初の10件を表示し、NEXTが押されると、次の10件を表示し、、、という作業です。 Oracleではrownumber(RowID)を使用して上記の事が実現できるようですし、MYSQLなどには、LIMIT n,mという専用の構文が用意されています。しかし、DB2にはそのような機能は用意されていないので、SQLでなんとかするしかありません。 (※2008.01.12 追記: DB2 9.5ではROWNUMが使用できるようになりました。 http://db2.jugem.cc/?eid=1135) (※2010.03.13 追記: ROWNUMの使い方についてのTipsを書きました。 http://db2.jugem.cc/?eid=2104) (※2010
C#でExcelファイルを読み込み、セルの値を取得して、画面に表示する手順とコードを紹介します。 概要 Microsoft.Office.Interop.Excel アセンブリを利用して、Excelファイルを読み込みセルの値を表示します。 事前準備: Microsoft.Office.Interop.Excel アセンブリの参照 Visual Studio を起動し、Windows Formアプリケーション(.NET Framework)を作成します。 プロジェクトの作成後、 Microsoft.Office.Interop.Excel アセンブリの参照を追加します。 参照の追加の手順はこちらの記事を参照してください。 事前準備: Excelファイルの準備 Excelファイルを作成します。今回はA1セルに値を入力して保存します。 プログラム UI Windows Formアプリケーションを
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く