1
我想要使用EJBQL(具有底层的MySQL数据源)连接两个EJB。有问题的两个表是使用EJBQL的LEFT JOIN表
Machine
- Hostname
- ... unrelated fields ...
和
Location
- Code
- Human readable description
的表格应留加入了对位置代码和机器的主机名的前三个字符。在直线上升的MySQL的命令是:
SELECT * FROM machine m LEFT JOIN location l ON (SUBSTRING(m.`Name`, 1,3) = l.`Code`);
当我把类似的事情到EJBQL我得到的所有类型的错误,从空poninter例外无效的语法例外raning的 - 这是我曾尝试:
query="SELECT NEW someObj(m, loc) FROM Machine as m " +
"LEFT JOIN FETCH Location as loc " +
"WHERE (SUBSTRING(m.hostname, 1, :length) = loc.code)"
我也尝试使用“ON”,而不是“WHERE” - 但EJBQL回来了,当我使用上的意外关键字...
所以 - 有没有人在成功之前做这样的事情?对于EJBQL的文件似乎表明,LEFT JOIN是确定的,所以我不知道这笔交易是什么...
感谢
编辑:我得到的例外是:
outer or full join must be followed by path expression
- 它葬在同一行空指针交易
编辑2:
有一台机器和地点,联合国没有关系幸运的是我不能改变的