`
jhyimu2005
  • 浏览: 188624 次
  • 性别: Icon_minigender_2
  • 来自: 苏州
社区版块
存档分类
最新评论

续AnnotationException: Cannot find the expected secondary table

阅读更多
此篇是相继一AnnotationException: Cannot find the expected secondary table 二产生的,通过以上的调试项目的部署已经没有任何问题,可当我进行测试的时候发现,在使用OneToMany注解且使用关联表来进行关联的时候,它是不支持双向的OneToMany的。此时总会抛出空指针错误,即:
java.lang.NullPointerException
	at org.hibernate.hql.ast.HqlSqlWalker.createFromJoinElement(HqlSqlWalker.java:332)
	at org.hibernate.hql.antlr.HqlSqlBaseWalker.joinElement(HqlSqlBaseWalker.java:3275)
	at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:3067)
	at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:2945)
	at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:688)
	at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:544)
	at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:281)
	at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:229)
	at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:251)
	at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:183)
	at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:134)
	at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:101)
	at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:80)
	at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:94)
	at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:156)
	at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:135)
	at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1650)

其解决方案就是将它作为ManyToMany来处理,因为OneToMany是它的特殊情况,在model中增加一函数
@Transient
	public Experiment getExperiment() {
		if(experiments != null && experiments.size() >0) {
			return experiments.iterator().next();
		}
		return null;

	}

来实现双向。
顺便把OneToMany的测试代码放在这吧,
@Test
	public void testSearchNotebook() {
		Notebook notebook = (Notebook) notebookDAO.find("select nb from Notebook nb left join fetch nb.experiment").get(0);
		//Experiment experiment = notebook.getExperiment();
		Experiment experiment= notebook.getExperiment();
		System.out.println(experiment);
	}


分享到:
评论

相关推荐

    Microsoft Excel File Format

    微软Excel文件格式是电子表格软件Microsoft Excel使用的数据存储格式,其版本涵盖了从Excel 2.0到Excel 2003的多个版本。这一文件格式详细描述了Excel文档的基本结构,包括工作簿(Workbook)和工作表(Worksheet)...

    OSError: no library called "cairo" was found GTK++ windows 安装包

    cannot load library 'libcairo.so.2': libcairo.so.2: cannot open shared object file: No such file or directory cannot load library 'libcairo.2.dylib': libcairo.2.dylib: cannot open shared object file: ...

    delphi问题常见解决

    1. **“statement expected but procedure found”**:这个错误提示表明在编译器尝试找到一个语句的地方,它却找到了一个过程(Procedure)的定义。这通常意味着你在某个过程或函数的定义中忘记了关闭的`end`关键字...

    shell脚本报错:"[: =: unary operator expected"解决办法

    在使用Shell脚本编程时,有时我们可能会遇到一个常见的错误提示:“[: =: unary operator expected”。这个错误通常出现在我们尝试进行条件判断时,尤其是当我们在`if`语句中使用`[ ... ]`或者`[[ ... ]]`进行比较...

    C++ 中 std::optional 与 std::expected 的深度辨析

    std::optional和std::expected都是 C++ 中非常有用的类型,它们在处理可能不存在的值以及错误情况时提供了更优雅和安全的方式。std::optional侧重于值的存在性,而std::expected侧重于错误信息的传递和处理。在实际...

    hbase 启动regionserver日志报错: Wrong FS: hdfs:// .regioninfo, expected: file:///

    NULL 博文链接:https://bnmnba.iteye.com/blog/2322332

    HTK3.4的.MKF 文件.zip

    window编译HTK3.4时会报错:htk_htklib_nt.mkf(6):fatalerrorU1035:syntaxerror:expected‘:’or‘=’separatorStop.这主要是由于这个文件格式编码的问题,只需下载然后替换相应的mkf文件,重新编译即可。目前发现HTK...

    shell脚本报错:”[: =: unary operator expected”解决办法

    shell脚本报错:”[: =: unary operator expected”解决办法  在匹配字符串相等时,我用了类似这样的语句: if [ $STATUS == OK ]; then echo OK fi  在运行时出现了 [: =: unary operator expected 的错误,就...

    calico.yaml

    calico集群模式下的yaml配置。sed -i "s#192\.168\.0\.0/16#${POD_SUBNET}#" calico.yaml

    线上问题分析:The target server failed to respond(目标服务器返回失败) - ado1986

    "线上问题分析:The target server failed to respond(目标服务器返回失败)" 知识点总结 在本文中,我们将分析一个常见的线上问题,即目标服务器返回失败(The target server failed to respond)。我们将从多个...

    DBus_C_API_Lowlevel

    DBus是Linux系统中一个用于进程间通信(IPC)的框架,它允许应用程序之间发送和接收消息。DBus C API是直接与DBus协议交互的底层接口,适用于需要深度控制和高效编程的场景。在这个“DBus_C_API_Lowlevel”压缩包中...

    Codewarrior编译出现的错误以及解决方法

    Codewarrior是一款由Metrowerks公司开发的集成开发环境,主要针对Motorola/Freescale的微处理器进行软件开发。文档《单片机技术初步实践》提供了有关Codewarrior在编译过程中可能遇到的C语言语法错误及其解决方法。...

    SVN 常见错误及解决方案汇总帖

    #### SVN服务配置错误:`svnserve.conf:12: Option expected` 在管理Subversion服务器时,你可能会遇到`svnserve.conf:12: Option expected`这样的错误信息。这通常发生在解析`svnserve.conf`配置文件时,系统期待...

    http-error-parse:NodeJS HTTP 错误解析。 给定一个错误堆栈对象,获取一条消息和_或相关的 HTTP 响应代码(404、400、401 等)

    http-error-parse 给定错误堆栈对象,获取一条消息和/或关联的HTTP响应代码(404、400、401等) 我创建它是为了与 express.js 一起使用,但它应该能够处理不同类型的错误,并智能地返回 HTTP 响应代码和简单的字符串...

    SDK16.0.0的使用说明.txt

    Nordic SDK16.0.0使用中遇到的问题,8.27.0 Pack问题,编译找不到nrf_erratas.h问题

    KEIL编译错误信息

    Cannot read or write variables of this type (error64):** - **含义:** 无法读写该类型的变量。 - **解决方法:** 确保变量类型是可读写的。 **63. Pointer variable expected (error65):** - **含义:** 期望...

    解决:dubbo找不到dubbo.xsd报错

    - schema_reference.4: Failed to read schema document 'http://code.alibabatech.com/schema/dubbo/dubbo.xsd', because 1) could not find the document; 2) the document could not be read; 3) the root ...

    Parasoft Handbook

    Verification ensures that the request and response match the expected outcomes. To verify: 1. **Step 1**: Define expected results for the request and response. 2. **Step 2**: Use checkpoints or ...

Global site tag (gtag.js) - Google Analytics