2013年1月29日火曜日

JPA2 Metamodel

JPA2 には、TypeSafe の施策として Metamodel という概念があるようです。
以下のサイトのように、「エンティティ名」+「_.」 +「カラム名」みたな感じで使うことになるようです。
http://www.ibm.com/developerworks/java/library/j-typesafejpa/

具体的な Metamodel の記述方法は以下のサイトが参考になりますね。
http://d.hatena.ne.jp/hayassh/20091027/1256656564

さらに、Hibernate JPA 2 Metamodel Generator というがあるようです。
http://docs.jboss.org/hibernate/jpamodelgen/1.0/reference/en-US/html_single/

本音を言えば、JPA2 が変更時の同期も含め、自動的に作ってくれるのがうれしいですが、少なくとも TypeSafe できますよ。というお話でした。

2013年1月28日月曜日

JPA Criteria API by samples

JPA Criteria と通常の JPQL の対比サンプル。並べてもらえるとわかりやすいですね。

JPA Criteria API by samples — Part-I | by altuure | altuure | Medium
JPA Criteria API by samples — Part-II | by altuure | altuure | Medium

※2022/4/4 リンク切れのため修正

2013年1月23日水曜日

EJB 3.1 の定期処理

AS 7.1 で、Quartz 使おうとしたら、ないのね・・・・。

と言うわけで、定期処理には、@Schedule を使うみたいです。
http://www.kevinhooke.com/2012/11/19/ee6-schedule-timer-service-on-jboss-as-7-1/
http://docs.oracle.com/javaee/6/tutorial/doc/bnboy.html

2013年1月15日火曜日

Forge で scaffold from-entity で生成した JSF/Bean

Forge で、scaffold from-entity すると、エンティティがシーケンス採番されてることが前提となった作りの JSF と、Bean が生成される。

これは困る・・・・そんなわけで。

◇エンティティの @Id 列の型が String の場合の対処法
  1. JSF には、@Id 列がごっそり抜けてるので、地道に @Id 列を追加。
  2. Bean では、@Id 列が Long であることを前提とされている!ので、こんなけ書き換え
    private String id;

    public String getId() {
        return this.id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public Employee findById(Object id) {
        return this.entityManager.find(Employee.class, id);
    }

2013年1月8日火曜日

Servlet3 で、SetCharacterEncodingFilter

あけおめことよろ。

ってことで、Servlet3 で、フォーム文字化け回避ってどうするの?
って思ったらすぐ見つかった。

SetCharacterEncodingFilter 使って tomcat の例の文字化けを回避したい
http://d.hatena.ne.jp/Yoshiori/20111102/1320242301

web.xml への設定は不要。

JBoss 7.1 & RESTEasy に適用したけど大丈夫でしたよ。当たり前か。