私は自分のプロジェクトでORM Liteを使用しています.Emailオブジェクトのコレクションを持つPersonオブジェクトの意図を段階的に追加する状況がありますが、LazyLoad(eager = false)のようなこのコレクションを読み込もうとすると) 以下は、電子メールのコレクションを取得するために使用されるモデルとコードに従います。
public class Pessoa implements Serializable{
@DatabaseField(generatedId=true)
private int id;
...
@ForeignCollectionField(eager=false)
private Collection<Email> emails;
...
}
public class Email implements Serializable{
@DatabaseField(generatedId=true)
private int id;
...
@DatabaseField(foreign=true)
private Pessoa pessoa;
...
}
コレクションの取得:
if(getIntent().hasExtra("Pessoa")){
pessoa = (Pessoa) getIntent().getSerializableExtra("Pessoa");
Iterator<Endereco> iterator = pessoa.getEnderecos().iterator();
while(iterator.hasNext()){
Endereco end = iterator.next();
Log.e("ENDERECO",end.getLogradouro());
}
次のエラーが表示されます。
12-18 11:48:08.168: E/AndroidRuntime(26028): 致命的な例外: メイン 12-18 11:48:08.168: E/AndroidRuntime(26028): java.lang.RuntimeException: アクティビティ ComponentInfo{com を開始できません。 example.pedidosexample/com.example.abertura.CadastroVisualizacao}: java.lang.IllegalStateException: 内部 DAO オブジェクトが null です。デシリアライズされている場合、遅延コレクションは使用できません。12-18 11:48:08.168: E/AndroidRuntime(26028): android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1970) で 12-18 11:48:08.168: E/AndroidRuntime(26028): Android で。 app.ActivityThread.handleLaunchActivity(ActivityThread.java:1995) 12-18 11:48:08.168: E/AndroidRuntime(26028): android.app.ActivityThread.access$600(ActivityThread.java:128) で 12-18 11:48 :08.168: E/AndroidRuntime(26028): android.app.ActivityThread$H で。dalvik.system.NativeStart.main (ネイティブ メソッド) 12-18 11:48:08.168: E/AndroidRuntime (26028): 原因: java.lang.IllegalStateException: 内部 DAO オブジェクトが null です。デシリアライズされている場合、遅延コレクションは使用できません。12-18 11:48:08.168: E/AndroidRuntime(26028): com.j256.ormlite.dao.LazyForeignCollection.seperateIteratorThrow(LazyForeignCollection.java:310) 12-18 11:48:08.168: E/AndroidRuntime(26028) : com.j256.ormlite.dao.LazyForeignCollection.iteratorThrow(LazyForeignCollection.java:71) 12-18 11:48:08.168: E/AndroidRuntime(26028): com.j256.ormlite.dao.LazyForeignCollection.closeableIterator(LazyForeignCollection) .java:60) 12-18 11:48:08.168: E/AndroidRuntime (26028): com.j256.ormlite.dao.LazyForeignCollection.iterator(LazyForeignCollection.java:47) 12-18 11:48:08.168:
エラーは問題が何であるかを明確に示していますが、Person オブジェクトを別のインテントに渡す別の方法があり、それはライト ORM で機能しますか?
ありがとうございました!