我已经用java写了几个月了,刚刚开始使用netbeans。
我今天花了一整天时间试图找出如何连接到SQL数据库并在JTable中显示来自2个表的数据(即显示来自带有内连接的select语句的数据)。我已尝试使用JPQL以下语句
SELECT j, cust.name FROM Job j JOIN j.jobnumber cust
其中作业表有一个名为customer的字段,该字段引用customer表中的id。抛出异常:
Caused by: Exception [TOPLINK-8029] (Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))): oracle.toplink.essentials.exceptions.EJBQLException
Exception Description: Error compiling the query [SELECT j, cust.name FROM Job j JOIN j.jobnumber cust], line 1, column 11: invalid navigation expression [cust.name], cannot navigate expression [cust] of type [java.lang.Integer] inside a query.
at oracle.toplink.essentials.exceptions.EJBQLException.invalidNavigation(EJBQLException.java:430)
我做错了什么?谁能指点我一些如何制作链接表java应用程序的例子?我还处于开发的早期阶段,如果使用mysql数据库不是最好的方法,那么完全改变并非不可能 感谢
答案 0 :(得分:1)
这不是一个netbeans问题,它是一个Toplink / JPA问题。既然您获得了EJBQLException,那么您是否查找过EJBQL示例?我真的不知道,所以我无法帮助你,但这就是我要开始的地方。
作为替代方案,既然你刚开始学习Java,你可能想尝试一些行李较少的东西,比如直接JDBC。
此外,如果你现在坚持使用JPA答案,或者将来切换回它,你应该考虑EclipseLink。它基本上取代了Toplink,后者变得越来越不受欢迎。
答案 1 :(得分:0)
我发现,如果我删除它为我生成的clases(对于我的表)并立即重新创建它们,它会接受它们之间的关系,并以代码形成它。然后我可以使用SELECT j FROM Job j
并访问我需要的所有内容。如果其他人需要帮助,我可以从这里获得帮助http://netbeans.org/kb/67/java/gui-db-custom.html