Какие аннотации мне нужно использовать для сопоставления объекта поиска пользователям таблицы?
Вам нужно использовать аннотацию @Table
, если вы хотите сопоставить ее с таблицей, которая по умолчанию не соответствует имени объекта:
@Entity
@Table(name = "Users")
public class UserSearch {
@Id @GeneratedValue(strategy = GenerationType.AUTO)
private long id;
private String name;
}
Но если этот класс используется для результатов поиска и если вы не планируете сохранять UserSearch
экземпляров, вам не нужно делать его сущностью. Предполагая, что вы предоставляете соответствующий конструктор:
public class UserSearch {
private long id;
private String name;
public UserSearch(long id, String name) {
this.id = id;
this.name = name;
}
}
Вы можете использовать этот класс вместе с SELECT NEW, например:
SELECT NEW com.acme.UserSearch(u.id, u.name) FROM User u