Ormlite - 扩展 BaseDaoImpl 时构造函数调用失败

2023-12-04

我有以下表格 -

@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
   }
}

对于这些表,关联的 Dao 和 DaoImpl 如下

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);
   }
}

数据库助手如下:

 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;
   }
}

现在,当我尝试打电话时 -

ADao aDao = databaseHelper.getA();

它会出现以下错误:

 Could not call the constructor in class class A_DaoImpl

现在,如果我在 A 中没有外键 - 如果 A 不包含,则说谎公共Bb,效果很好。我在这里缺少什么吗?

预先非常感谢您。


我怀疑您在异常堆栈跟踪末尾缺少原因消息。例如,如果我复制上面的示例,我会得到:

java.sql.SQLException: Could not call the constructor in class class 
      com.j256.ormlite.table.CustomDaoTest$A_DaoImpl
  at com.j256.ormlite.misc.SqlExceptionUtil.create(SqlExceptionUtil.java:22)
  ...
Caused by: java.lang.reflect.InvocationTargetException
  at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
  ...
Caused by: java.lang.IllegalArgumentException: Foreign field class
>>>>      com.j256.ormlite.table.CustomDaoTest$B does not have id field  <<<<<<
  at com.j256.ormlite.field.FieldType.configDaoInformation(FieldType.java:332)
  ...

Because A有外国领域的课程B, then B需要有一个 id 字段。外国字段需要身份字段。

我敢肯定A and B是您的课程的简单版本,因此如果您发布更多异常(包括所有原因信息),我将适当编辑我的答案。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ormlite - 扩展 BaseDaoImpl 时构造函数调用失败 的相关文章

随机推荐

  • 文本框中的永久前缀

    我试图在文本框中输入永久前缀 就我而言 我想要有以下前缀 DOMAIN 这样用户只需在域前缀后输入用户名即可 这不是我必须做或追求的事情 但我的问题更多是出于好奇 我试图想出一些逻辑来做到这一点TextChangedEvent但是 这意味着
  • AngularJS 应用程序的 AssertionUrl

    我的申请流程是这样的 用户输入 Url 然后显示 AngularJS 登录页面 用户单击 使用 SAML 登录 并调用返回 SAML 登录 URL 的 Web API 端点 AngularJS UI 接收 SAML 登录 URL 并将用户重
  • Spark.csv如何确定读取的分区数?

    在 Spark 2 2 0 中 我正在使用以下命令读取一个文件 spark csv read filepath load rdd getNumPartitions 我在一个系统中为 350 MB 文件分配了 77 个分区 在另一个系统中分配
  • TensorFlow Keras 无法处理大于 GPU 内存的 numpy 数组

    我正在尝试处理重量超过 25GB 的样本矩阵 问题是我的 GPU 只有 12GB 内存 我认为 tenorflow 会将小批量的矩阵从 ram 转移到 gRam 如下所述 https stackoverflow com a 53938359
  • 样式未应用于 CSS 中的 H1 元素

    我面临一个奇怪的问题 该样式没有应用于H1元素 Code p h1 color red p p h1 This is a header h1 You can t有一个标题 H1 to H6 作为一个孩子p 这是无效的 HTML 它不起作用
  • SyntaxError:无法在 JEST LWC 中的模块外部使用 import 语句

    我正在尝试使用 Visual Studio Code 作为 IDE 来测试我的第一个 Lightning Web 组件 按照指示 我安装了 Node js npm 和 jest 依赖项 但我收到这个错误 错误图像 当尝试运行下面的代码时 d
  • 是否可以编辑 UIAlertAction 标题字体大小和样式?

    现在iOS8已经弃用了UIActionsheet and UIAlertviewiOS7 上的自定义不再生效 到目前为止 我知道的唯一定制是色调颜色 我需要的是改变标题的字体大小和样式 但我还没有找到任何方法可以用新的UIAlertActi
  • SQL AND 运算符无法正常工作

    我有以下两张表 地块表 Blockid ParcelNo storPri 52000105 3 State 52000105 4 Private 52000105 5 State 行动表 Blockid ParcelNo ActionTak
  • Pandas 中的可变位移

    数据框中有两列 A 和 B A B 0 1 6 1 2 7 2 1 8 3 2 9 4 1 10 我想创建一个列 C C 必须将 B 的值移动 A 的值 A B C 0 1 6 NaN 1 2 7 NaN 2 1 8 7 3 2 9 7 4
  • ImageMagick 比较:忽略 PSNR 结果中的白色匹配

    我在用着compare区分两个相似的colorPNG 文件 他们得到一个PSNR值 27 图像包含许多白色区域 两个图像之间始终匹配 如果我错了 请纠正我 但这些白色区域正在增加 PSNR 值 使图像作为平均值更加相似 因此我不想考虑白色像
  • 如何以编程方式在所需文件夹中创建 SQL Server 2008 数据库完整备份

    如何使用 Microsoft Visual Studio 2010 c 以编程方式在所需文件夹中创建 SQL Server 2008 数据库完整备份 只需执行 SQL Servercommand BACKUP DATABASE databa
  • C11 中的内存顺序消耗使用情况

    我读到了关于带有依赖性关系和依赖顺序先于在其定义中使用 15 1 2 4 p16 评价A在评估之前是依存顺序的B if A对原子对象执行释放操作M 并且 在另一个 线 B执行消费操作M并读取写入的值 由释放序列中的任何副作用引起A or 一
  • Apache Lucene 大型 XML 文件索引

    我是 lucene 新手 我想用 lucene 索引包含纯文本 属性和许多 xml 标签的大型 xml 文件 15GB 如何使用 lucene 和任何示例解析此 xml 文件并为其建立索引 如果我们使用 lucene 我们需要任何数据库 如
  • Inno Setup:调整卸载进度表及其所有组件的大小

    嘿 我需要增加宽度和高度UninstallProgressForm我的 Inno Setup 卸载程序 当我根据我的自定义设计的安装程序向导页面宽度和高度手动更改其宽度和高度时 卸载进度表显得很奇怪 唯一改变的是它的宽度和高度 所有其他组件
  • 使用 Attach 时 R 中的命名冲突

    我感觉好像在 R 中经常出现奇怪的命名冲突 附加数据帧和其他对象之间 附加 分离不能按预期工作 只是附加了同一数据帧的两个副本 甚至不确定它们是否相同 和整个软类型语言特定问题 一小时前工作的代码突然产生新的错误等 是否有处理此类事情的最佳
  • 如何在pygame中让相机跟随自上而下的汽车

    一般来说 对 pygame 和游戏编程不熟悉 只是想知道如何让相机在自上而下的汽车游戏中跟随汽车 没什么花哨的 想想微型机器 我正在使用 Python 3 6 并且有一辆可以旋转和移动的自行车 我在这里保留了更短的代码 但如果相机正常工作
  • 如何创建一个新的 Moose 类并在运行时实例化该类的对象?

    使用创建元类后Moose Meta Class gt create 我如何实例化一个真正的 Moose 类 并将该类作为元类 我还需要创建元类 因为我还想对其应用一些角色 当然 元类就是类 如果您想要该类的实例 只需执行以下操作 my in
  • 仅在 320x480 区域检测到 iPad 触摸

    我正在升级 iPhone 应用程序 到目前为止一切进展顺利 设法调整大多数表单的屏幕显示大小 但是 我无法解决一个问题 仅在旧的 320x480 区域中检测到触摸 我有什么想法可以解决这个问题吗 Thanks 编辑 以下是执行获取超级视图边
  • 本地化 ASP.NET MVC 应用程序母版页中的字符串

    I have 设法本地化视图页面在我的应用程序中 但有包含一些字符串的母版页 看来母版页中包含的字符串必须添加到每个页面的资源文件中 这看起来很可怕 如何优雅地本地化母版页中的字符串 如果您不想弄乱访问修饰符 您可以创建一个助手来简化访问资
  • Ormlite - 扩展 BaseDaoImpl 时构造函数调用失败

    我有以下表格 DatabaseTable tableName b daoClass B DaoImpl class public class B DatabaseField public String b1 public B For Orm