JPAのEntityManagerでレコード読み込み時、Nullだったら空文字に勝手にしたい場合の対処法を記載します。
/**
 * The persistent class for the database table.
 * 
 */
@Entity
@Table(name="sample_table")
@NamedQuery(name="sample_table.findAll", query="SELECT o FROM sample_table o")
public class sample_table implements Serializable {
 private static final long serialVersionUID = 1L;
@EmbeddedId
 private sample_tablePK id;
@Column(name="Id")
 private String id;
 
 @Column(name="col1")
 private String col1;
・・・
・・・
/**
 * PostLoadアノテーションは、EntityManagerでem.setResultListやNamedQuery/NativeQueryなどでレコードアクセスし、
 * Entityへロードする際にフックされる。
 */
 @PostLoad
 private void whenLoadEntity(){
 // System.out.println("================== POST LOAD ====================");
 if(this.col1 == null) this.col1 = "";
・・・(その他レコードロード時の初期化処理を行う)
}
- @PostLoad
 - private void whenLoadEntity()
 
上記2行がポイントです。PostLoadアノテーションは、EntityManagerでem.setResultListやNamedQuery/NativeQueryなどでレコードアクセスし、Entityへロードする際にフックされます。
Entityに値が入る前に設定してしまえばNullPointerExceptionの会費になります。但し、Entityを読込のみとして利用する場合に限定する必要がありそうです。(ここら辺はもう少し調べる必要があるかも)