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:
有一臺機器和地點,聯合國沒有關係幸運的是我不能改變的