datastore にアクセスした時にJPA、JDOに限らず
java.lang.RuntimeException: java.io.NotSerializableException: org.datanucleus.store.appengine.query.DatastoreQuery$1とのエラーが出る。
Eclipseのデバッグ環境では、問題ないのに…
Googleのサーバではうまくいかない。
Wicketを使っているのだけれどそれが原因?
よくわからないけど抽出結果をそのまま使うとダメなようだ。
Arrayオブジェクトなどに入れ直すとエラーは出なくなった。
List<Employee> src
= em.createQuery("SELECT e FROM Employee").getResultList();
// 抽出結果をArrayオブジェクトに入れ直しをする。
List<Employee> emps = new ArrayList<Employee>(src);
add(new ListView("listviewtable", emps)
{
protected void populateItem(ListItem item)
{
Employee emply = (Employee) item.getModelObject();
item.add(new Label("firstName", emply.getFirstName()));
item.add(new Label("lastName", emply.getLastName()));
}
});