早上好。我一直在试图回答这个问题。
如果你有一个表具有到另一个表的外键,并且你想要两个表的结果,那么使用基本的SQL你可以对外键进行内部连接,并且你会得到你请求的所有结果信息。当您在外键上生成JPA实体时,您会在外键列上获得@oneToone注释,@oneToMany,@ManyToMany,@ManyToOne等。我有@oneToMany通过外键和对应的表列中的主键相应的@ManyToOne我也有一个@joinedON注释在正确的列...我也有一个基本的命名查询,将选择从第一表。我需要做一个连接来从两个表中获取信息,就像我需要在基本的SQL中做的那样?或者我有这些注释的事实将这些记录拉回给我?要清楚我是否有基于外键关系与表B相关的表A,并且我希望来自两个表的记录,我将根据外键将表A连接到B或
Select * From A inner Join B on A.column2 = B.column1或者其他一些这样的无意义(如果它不完全正确,请谅解我的sql,但你明白了)...
该查询将选择所有列A和B,其中这两个选定的列...
这是我正在使用的命名查询....
@NamedQuery(name="getQuickLaunch", query = "SELECT q FROM QuickLaunch q")这就是我在无状态会话bean中调用的方式...
try
{
System.out.println("testing 1..2..3");
listQL = emf.createNamedQuery("getQuickLaunch").getResultList();
System.out.println("What is the size of this list: number "+listQL.size());
qLaunchArr = listQL.toArray(new QuickLaunch[listQL.size()]);
}现在这个调用返回了表A的所有列,但它缺少表B的列。我的第一本能是改变查询来加入这两个表......但是那种让我觉得什么是使用点JPA然后,如果我只是写相同的问题,我会写在任何地方,只是在不同的地方。另外,我不想忽略简单的事情。那么你说堆栈溢出爱好者呢?如何使用JPA取回所有连接查询的数据?