У меня есть два компонента управления:JPQL Специальный запрос
@Entity
public class User {
@Id
@GeneratedValue
private Long id;
@OneToMany(mappedBy="user", cascade = CascadeType.ALL)
private List<Comment> comments = new ArrayList<Comment>();
//SOME OTHER CLASS VARIABLES
//GETTERS AND SETTERS
}
и мой комментарий класс как это:
@Entity
public class Comment {
@Id
@GeneratedValue
private Long id;
private String title;
private String content;
@ManyToOne
private User user
//SOME OTHER CLASS VARIABLES
//GETTERS AND SETTERS
}
теперь я знаю, что я могу получить объект пользователя из сеанса и установите пользователя для моего комментарий, как это для того, чтобы иметь возможность использовать функцию присоединиться к JPA:
commentObject.setUser(TheSessionGrabedUserObject/UserObjectWhichHasFetchedFromDbUsingUserId);
, но до тех пор, как я идент для моего пользователя Object Мне не нужно это делать. Я ищу способ вставить этот foreignKey в мою таблицу комментариев, не получая Пользовательский объект из сеанса или, возможно, запрос к базе данных, чтобы получить его первым!
как я буду делать это с помощью JPQL?
Что вы подразумеваете под этим? Он не выполняет какой-либо запрос db, так как он извлекает данные из базы данных? Я должен запросить db для извлечения пользователя из базы данных, даже если сам от себя ... – Mehdi
'getReference()' не нужно выполнять запрос БД для создания экземпляра только с идентификатором. Этого достаточно, поскольку для 'commentObject' нужен только идентификатор пользователя. Попробуйте. – MattR