Java

Optionalについて

nullの可能性のあるオブジェクトのラッパー。NullPointerExceptionを発生させない為に導入された仕組み。 Optionalオブジェクトの生成 public static Optional of(T value) public static <T> Optional<T> of(T value) 指定された非null値を含むOptionalを返します</t></t>…

Streamの終端処理

void forEach(Consumer action) 要素を順に処理する ※forEachメソッドは並列ストリームでは順序を保証しない為、順序を保証したいならforEachOrderedメソッドを使うこと Stream.of("beckham", "zidane", "ronald").forEach(v -> System.out.println(v)); Opt…

関数型インタフェースとStream API

関数型インタフェースとStream APIの復習をしたのでメモ 関数型インタフェース インタフェース メソッド 説明 Function<T, R> R apply(T t) T型の引数を受け取ってR型の結果を戻す Consumer< T > void accept(T t) T型の引数を受け取って処理する(戻り値なし) Su</t,>…

DBUnitにさわる

DBUnitにさわった時のメモ 必要なJarファイル asm-3.0.jar bcel-5.2.jar commons-beanutils.jar commons-lang.jar commons-logging.jar dbunit-2.2.3-javadoc.jar dbunit-2.2.3-sources.jar dbunit-2.2.3.jar djunit.jar ibatis-2.3.0.677.jar jakarta-oro-2…

Antでdjunitを実行する

Antでdjunitを実行した時のメモ 必要なJarファイル (「jp.co.dgic.eclipse.jdt.djunit_0.8.3」からコピー) asm-3.0.jar bcel-5.2.jar djunit.jar jakarta-oro-2.0.7.jar jcoverage-djunit-1.0.5.jar junit-4.4.jar build.xml <project default="build" basedir="."> <property name="home.dir" value="." />…</property></project>

先方参照で文字列を抽出する

package learning.regexp; import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexpExample { public static void main(String[] args) { Pattern pattern = Pattern.compile("<a href=['\"]([^'\"]+)['\"]>", Pattern.CASE_INSENSITIVE); Matcher matcher</a>…

プロパティセットをXMLから読み込む

SE5では、プロパティセットをXMLから読み込むことができるらしいので試してみた。 いちいちnative2asciiしなくてよいのは便利かも。 XMLファイル <properties version="1.0"> <comment>コメント</comment> <entry key="Hello">World!</entry> <entry key="こんにちは">世界!</entry></properties>

ICU4Jを使う

半角を全角にするライブラリがないか探していたらICU4Jというライブラリを見つけたので使ってみる。まずは以下のサイトからダウンロードする。 IBM - Japan で、以下のJarをクラスパスへ含める。 icu4j-3_6.jar icu4j-charsets-3_6.jar xliff-3_6.jar Sample…

更新のメモ(2)

Hibernateの実装は、デフォルトでは全ての列に対して更新を行なってしまう。 サンプル package sample; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.EntityTransaction; import java…

Lockのメモ

JPAでは、EntityManager.lock(Object, LockModeType) でLockを取得できるらしい。 LockModeTypeは、WRITEとREADが用意されている。とりあえず、次のようなコードでロックの動作を確認をしてみる。 package sample; import javax.persistence.EntityManager; …

更新のメモ

明示的に更新メソッド(EntityManager.merge())を呼び出さない更新と、更新メソッド(EntityManager.merge())を呼び出す更新の動作確認。 EntytyManager.merge() を使用しない更新(関連テーブル) ← いや削除・・・ package sample; import java.util.Arr…

Cascadeのメモ

CascadeType.PERSIST, CascadeType.REMOVEの確認 MovieのCascadeTypeを次のように変更し、動作確認をしてみた。 cascade=CascadeType.ALL, ↓ cascade={CascadeType.PERSIST, CascadeType.MERGE}, CascadeExSample.class package sample; import javax.persis…

EntityManager.remove()のメモ

削除の動作を確認しようと次のようなコードを実行したところ、ObjectDeletedExceptionという例外がthrowされた。Remove.class package sample; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persi…

ManyToManyのメモ

テーブル create table movie ( id identity, name varchar(50), primary key (id) ); create table actor ( id identity, name varchar(50), primary key (id) ); create table movie_actor ( movie_id bigint, actor_id bigint, primary key (movie_id, ac…

GeneratorType.SEQUENCE の指定方法

次のように指定していたが間違いだった。 @Id(generate=GeneratorType.SEQUENCE, generator="id_seq") public long getId() { ・・・ } 正しくは・・・ @SequenceGenerator(name="SEQ", sequenceName="id_seq") public class UserInfo { ・・・ @Id @Generat…

JPAで複合キーを使う

メモだけ。 package sample.jpa.domain; import javax.persistence.Embeddable; @Embeddable public class EmployeePK implements Serializable { private long companyId; private long employeeId; public EmployeePK() { } public long getCompanyId() { …

JPAにさわる

eclipseがOutOfMemoryErrorで落ちた・・・

Eclipseを使用していたら、次のようなエラーで落ちた。 Exception: java.lang.OutOfMemoryError: PermGen space. Permanent領域が不足している為、eclipse.iniへ以下を追加し、対応した。 -XX:PermSize=64m -XX:MaxPermSize=256m

Servlet2.4とJSTL1.1

Tomcat 5.5.20でJSTLを使用したところ次のようなエラーが発生した。 「TLD又はタグファイル中のattribute指示子に従って属性valueはどんな式も受け付けません」 あれ〜?タグリブの宣言も2.4の宣言になってるし、standard.jar も jstl.jar も${CATALINA_HOME…