Ormlite - Chamada de construtor com falha quando BaseDaoImpl é estendido
Eu tenho as seguintes tabelas -
<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>
Para estas tabelas, os associados Dao e DaoImpl são os seguintes
<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>
O ajudante de banco de dados é o seguinte:
<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>
Agora, quando tento ligar -
<code>ADao aDao = databaseHelper.getA(); </code>
ele comete o seguinte erro:
<code> Could not call the constructor in class class A_DaoImpl </code>
Agora, se eu não tenho a chave estrangeira em A - ou seja, se A não contémpúblico B b, Funciona bem. Existe algo que estou sentindo falta aqui?
Muito obrigado antecipadamente.