Ormlite - Konstruktoraufruf schlägt fehl, wenn BaseDaoImpl erweitert wird

Ich habe die folgenden Tabellen -

<code>@DatabaseTable(tableName="b", daoClass=B_DaoImpl.class)
public class B {

   @DatabaseField
   public String b1 ;

   public B(){
     // For Ormlite
   }
}

@DatabaseTable(tableName="a", daoClass=A_DaoImpl.class)
public class A {

   @DatabaseField
   public String a1 ;

   @DatabaseField(foreign=true)
   public B b;

   public A(){
     // For Ormlite
   }
}
</code>

Für diese Tabellen lauten die zugeordneten Dao und DaoImpl wie folgt

<code>public interface A_Dao extends Dao<A, String>{}
public interface B_Dao extends Dao<B, String>{}


public class B_DaoImpl extends BaseDaoImpl<User, String> implements B_Dao {

   public B_DaoImpl(ConnectionSource connectionSource) throws SQLException {
      super(connectionSource, B.class);
   }
}

public class A_DaoImpl extends BaseDaoImpl<User, String> implements A_Dao {

   public A_DaoImpl(ConnectionSource connectionSource) throws SQLException {
      super(connectionSource, A.class);
   }
}
</code>

Der Datenbank-Helfer sieht wie folgt aus:

<code> public class DatabaseHelperImpl extends OrmLiteSqliteOpenHelper implements DatabaseHelper {

   private A_DaoImpl aDao = null;
   private B_DaoImpl bDao = null;

   public B_DaoImpl getBDao() throws SQLException {
       if (bDao == null) {
          bDao = getDao(B.class);
       }
       return bDao;
   }

   public A_DaoImpl getA() throws SQLException {
        if (aDao  == null ) {
          aDao = getDao(A.class);
        }
        return aDao;
   }
}
</code>

Nun, wenn ich versuche anzurufen -

<code>ADao aDao = databaseHelper.getA();
</code>

Es tritt ein Fehler mit dem folgenden Fehler auf:

<code> Could not call the constructor in class class A_DaoImpl
</code>

Nun, wenn ich nicht den falschen Schlüssel in A habe - dh wenn A nicht enthältöffentlich B b, es funktioniert gut. Fehlt mir hier etwas?

Vielen Dank im Voraus.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage