Всем привет. Изучаю Hibernate. К примеру если я хочу из базы данных юзеров найти одного юзера по айди, то вопросов нету:
Client client = em.find(Client.class, id);
А если я хочу найти клиента по другим параметрам, к примеру одновременно по имени и номеру телефона?
Вот к примеру у меня есть сущность клиент
class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@Column(name = "name",nullable = false, length = 32)
private String name;
@Column(name = "number", nullable = false, unique = true)
private String number;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "user")
private Set<Account>accounts;
User(String name, String number) {
this.name = name;
this.number = number;
}
}
а теперь я хочу найти его с помощью ентити менеджера? Может создать мапу в которой будут параметры поиска? Но как тогда менеджер поймет по каким полям и как сравнивать?
System.out.println("write your username");
String username = scanner.nextLine();
System.out.println("write your number");
String number = scanner.nextLine();
Map<String, Object> map= new HashMap<String, Object>();
map.put("username", username);
map.put("number", number);
User user = entityManager.find(User.class, map);
Так вот, что делать? Или тогда создать запрос с которого вытянуть всех клиентов, а тогда перебрать по критериям?
Вытягивать всех клиентов можно, если у вас их меньше 100 например, да и то будет не оптимально: ни по скорости, ни по памяти.
Вы можете попробовать использовать Query, например:
TypedQuery<User> query = em.createQuery(
"SELECT u FROM User u WHERE u.username = :username AND u.number = :number", User.class);
User user = query.setParameter("username", username)
.setParameter("number", number)
.getSingleResult();
или
List<User> users = query.setParameter("username", username)
.setParameter("number", number)
.getResultList();
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Пишу проект на JavaFX и Scene BuilderСтолкнулся с необходимостью собрать нормально проект
Я пытаюсь сделать анимацию открывания меню в javafx с помощью TranslateTransition, но почему то не выходитМне нужно что бы AnchorPane двигался вправо(по X) на 200 пикселей