2012-02-06 4 views
1

У меня есть объект JPA под названием Customer.java:объектов JPA нагрузки с именованными запросами

@NamedQueries({@NamedQuery(name="getAccountWithCheckRangeByService", 
query="SELECT c FROM Customer"}) 
public Long Id; 
public Address address; 
//getter and setter 
} 

Теперь, если я призываю именованный запрос и загрузить объект Custoemr. а затем, если я сделаю c.getAddress(), я получу адрес загружен? Или мне нужно написать отдельный именованный запрос для загрузки адреса

ответ

1

Возможно, вы имеете в виду SELECT c FROM Customer c.

Если вы хотите, чтобы адрес был загружен, вы можете использовать fetch joins.

SELECT c FROM Customer c JOIN FETCH c.address

0

Попробуйте - посмотрите, что произойдет. Если адрес является отдельным объектом, тогда да, он будет загружать все зависимые объекты - в этом случае вы не аннотировали, какова связь между клиентом и адресом, но я предполагаю, что вы это пропустили. Вы можете сделать это ленивой нагрузкой на реляционную аннотацию, например @OneToMany (fetch = FetchType.LAZY). Если адрес - это просто столбец внутри Customer, тогда да, он загрузит его, хотя ваш синтаксис JPQL немного странный - я бы сделал «SELECT c FROM Customer c». Не уверен, что ваш именованный запрос будет работать, но он должен сделать, если вы попробовали его.

 Смежные вопросы

  • Нет связанных вопросов^_^