Sobes.tech
Junior — Middle

Hibernate-деги аталышталган суроо эмне жана ал кандай колдонулат деп түшүндүрө аласызбы?

sobes.tech AI

AIден жооп

Hibernate-деги аталышталган суроо — бул алдын ала аныкталган (HQL же SQL) суроо, ага уникалдуу ат берилген жана ал коддо көп жолу колдонулушу мүмкүн. Мындай суроо адатта @NamedQuery аннотациялары же XML конфигурациясында жарыяланат.

Аталышталган суроолордун артыкчылыктары:

  • бир эле суроонун ар кайсы жерлерде кайра колдонулушу.
  • суроолорду борборлоштурулган башкаруу.
  • тиркемени жүктөөдө суроонун синтаксисин текшерүү мүмкүнчүлүгү.

Мисал катары аннотацияны колдонуп аталышталган суроону жарыялоо:

@Entity
@NamedQuery(
    name = "User.findByEmail",
    query = "FROM User u WHERE u.email = :email"
)
public class User {
    @Id
    private Long id;
    private String email;
    // getter жана setter
}

Коддо колдонуу:

Query query = session.createNamedQuery("User.findByEmail");
query.setParameter("email", "example@mail.com");
User user = (User) query.uniqueResult();