Как заставить JPA и JPQL передавать полный запрос на соединение в СУБД? Например,
SELECT e
FROM Employee e
WHERE a.runkey = e.runkey
AND e.middle = 'M'
AND a.state = 'MA'
Со следующим классом сотрудников
@Entity
public class Employee implements Serializable {
blah ... blah
@OneToOne
@JoinColumn(
name = "runkey",
referencedColumnName = "runkey",
insertable=false, updatable=false)
private Address address;
}
и JPQL,
SELECT e
FROM Employee e
INNER JOIN FETCH e.address AS a
WHERE a.state = :state
AND e.middle = :middle
Я могу заставить Hibernate JPA извлекать данные, как и ожидалось.
Однако eclipselink хрипит, что не может пройти по связанному полю «адрес».
Если да, то как мне спроектировать сущность Employee и как мне сформулировать JPQL, чтобы заставить eclipselink выполнять объединение таблиц с фильтрами WHERE для обеих таблиц?
(Рэнт: В остальном Eclipselink JPA ничем не лучше JDO!!!)
~
Дополнительное редактирование: имеет ли это сообщение какое-либо отношение к моему делу....
https://forums.oracle.com/forums/thread.jspa?threadID=1568659
n? Что является исключением (скопируйте трассировку стека)? JOIN FETCH должен работать. - person Anthony Accioly   schedule 25.07.2012javax.persistence.OneToOne, а неorg.hibernate.mapping.OneToOne? - person Affe   schedule 25.07.2012