此篇是相继一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);
}
分享到:
相关推荐
微软Excel文件格式是电子表格软件Microsoft Excel使用的数据存储格式,其版本涵盖了从Excel 2.0到Excel 2003的多个版本。这一文件格式详细描述了Excel文档的基本结构,包括工作簿(Workbook)和工作表(Worksheet)...
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: ...
1. **“statement expected but procedure found”**:这个错误提示表明在编译器尝试找到一个语句的地方,它却找到了一个过程(Procedure)的定义。这通常意味着你在某个过程或函数的定义中忘记了关闭的`end`关键字...
在使用Shell脚本编程时,有时我们可能会遇到一个常见的错误提示:“[: =: unary operator expected”。这个错误通常出现在我们尝试进行条件判断时,尤其是当我们在`if`语句中使用`[ ... ]`或者`[[ ... ]]`进行比较...
NULL 博文链接:https://bnmnba.iteye.com/blog/2322332
window编译HTK3.4时会报错:htk_htklib_nt.mkf(6):fatalerrorU1035:syntaxerror:expected‘:’or‘=’separatorStop.这主要是由于这个文件格式编码的问题,只需下载然后替换相应的mkf文件,重新编译即可。目前发现HTK...
shell脚本报错:”[: =: unary operator expected”解决办法 在匹配字符串相等时,我用了类似这样的语句: if [ $STATUS == OK ]; then echo OK fi 在运行时出现了 [: =: unary operator expected 的错误,就...
calico集群模式下的yaml配置。sed -i "s#192\.168\.0\.0/16#${POD_SUBNET}#" calico.yaml
http-error-parse 给定错误堆栈对象,获取一条消息和/或关联的HTTP响应代码(404、400、401等) 我创建它是为了与 express.js 一起使用,但它应该能够处理不同类型的错误,并智能地返回 HTTP 响应代码和简单的字符串...
Nordic SDK16.0.0使用中遇到的问题,8.27.0 Pack问题,编译找不到nrf_erratas.h问题
Cannot read or write variables of this type (error64):** - **含义:** 无法读写该类型的变量。 - **解决方法:** 确保变量类型是可读写的。 **63. Pointer variable expected (error65):** - **含义:** 期望...
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 ...
imagem end for website dom pelo minoxidil
UTC [main] main -> ERRO 001 Cannot run peer because error when setting up MSP from directory Error:can't read the block:&{SERVICE_UNAVAILABLE} Error:Error endorsing chaincode:rpc error:code = ...
std::expected单个标头实现,带有功能样式的扩展名。 lang + GCC: MSVC: 在和上可用。 建议使用作为表示对象的首选方法,该对象将具有预期值或意外值,以提供有关某些原因的信息。 不幸的是,将许多可能失败的...
解决复现 PointNet 中出现的【dll = np.ctypeslib.load_library(‘render_balls_so’, ‘.’) OSError: no file with expected extension:】问题。只需要替换原作者代码中的文件就可以。
Codewarrior是一款由Metrowerks公司开发的集成开发环境,主要针对Motorola/Freescale的微处理器进行软件开发。文档《单片机技术初步实践》提供了有关Codewarrior在编译过程中可能遇到的C语言语法错误及其解决方法。...
keil常见错误 main.c(35): warning: #128-D: loop is not reachable from preceding code main.c(54): warning: #1-D: last line of file ends without a newline initSpi.c(6): error: #268: declaration may not ...