CodeGym/Java Course/All lectures for HI purposes/рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдиреБрд░реЛрдз

рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдиреБрд░реЛрдз

рдЙрдкрд▓рдмреНрдз

6.1 рдирд╛рдорд╛рдВрдХрд┐рдд рдкреНрд░рд╢реНрди

рд╣рд╛рдЗрдмрд░рдиреЗрдЯ рдЖрдкрдХреЛ рд╕реАрдзреЗ рдХреЛрдб рдореЗрдВ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╡рд╣ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдирд╛рдо рджреЗрдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдЕрд▓рдЧ рд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реИред рдареАрдХ рд╣реИ, рддреЛ рд╡рд╛рдВрдЫрд┐рдд рдЕрдиреБрд░реЛрдз рд╕реАрдзреЗ рдЗрд╕рдХреЗ рдирд╛рдо рд╕реЗ рд▓реЗрдВред рдЙрджрд╛рд╣рд░рдг:

@org.hibernate.annotations.NamedQueries({
    @org.hibernate.annotations.NamedQuery(name = "Employee_FindById",
  	query = "from Employee where id = :id"),
    @org.hibernate.annotations.NamedQuery(name = "Employee_FindAllEmployes",
  	query = "from Employee"),
    @org.hibernate.annotations.NamedQuery(name = "Employee_UpdateEmployeeName",
  	query = "Update Employee set name = :newName where id = :id"),
...
})

рдХрд┐рд╕реА рднреА рдЗрдХрд╛рдИ рд╡рд░реНрдЧ рд╕реЗ рдкрд╣рд▓реЗ рдПрдиреЛрдЯреЗрд╢рди рдЬреЛрдбрд╝реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ: рдХреНрд╡реЗрд░реА рдирд╛рдо рдХрд┐рд╕реА рднреА рдЗрдХрд╛рдИ рд╕реЗ рдмрдВрдзреЗ рдирд╣реАрдВ рд╣реИрдВред

рдЖрдк рдХреНрд╡реЗрд░реА (рдХреНрд╡реЗрд░реА) рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреИрд░рд╛рдореАрдЯрд░ рднреА рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:

@org.hibernate.annotations.NamedQuery(
  name = "Employee_ FindAllEmployes",
  query = "from Employee",
  timeout = 1,
  fetchSize = 10,
  cacheable = true,
  cacheMode = "GET"
)

рдРрд╕реЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ - рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ createNamedQueryрд╡рд┐рдзрд┐ рдХреЗ рдмрдЬрд╛рдп рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ createQuery:

Query<Employee> query = session.createNamedQuery("Employee_FindAllEmployes", Employee.class);
List<Employee> resultLIst = query.list();

6.2 рдиреЗрдЯрд┐рд╡ рдХреНрд╡реЗрд░реА

рдФрд░ рдПрдХ рдФрд░ рд╕рд░рд▓ рд▓реЗрдХрд┐рди рдмрд╣реБрдд рд╣реА рдЙрдкрдпреЛрдЧреА рдЪреАрдЬ рд╣реИ NativeQuery ред

рдпрджрд┐ рдЖрдк рдПрдЪрдХреНрдпреВрдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрдХрд╛рдИ рдореИрдкрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╣рд╛рдЗрдмрд░рдиреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЕрдЪреНрдЫреЗ рдкреБрд░рд╛рдиреЗ рдПрд╕рдХреНрдпреВрдПрд▓ рдореЗрдВ рдкреНрд░рд╢реНрди рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдХреЛрдИ рдЖрдкрдХреЛ рд╕реАрдорд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ред

createNativeQuery()рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдмрд╕ рдХреЗ рдмрдЬрд╛рдп рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ createQuery()ред

NativeQuery<Employee> query = session.createNativeQuery("select * from employee", Employee.class);
List<Employee> resultLIst = query.list();

рддреБрдо рдмрд╕ рд▓рд┐рдЦреЛ createNativeQueryрдФрд░ рд╕рдм рдХреБрдЫ рдкрд╣рд▓реЗ рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдпрд╣ рд╡рд┐рдзрд┐ NativeQuery рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реМрдЯрд╛рддреА рд╣реИ , рдЬреЛ рдХреНрд╡реЗрд░реА рд╡рд░реНрдЧ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╕рднреА рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ ред рдЖрдкрдХреЗ рд▓рд┐рдП рдХреБрдЫ рдирд╣реАрдВ рдмрджрд▓реЗрдЧрд╛ред

рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдиреЗрдЯрд┐рд╡ SQL рдХреНрд╡реЗрд░реА рдХреЛ рдирд╛рдорд╛рдВрдХрд┐рдд рдХреНрд╡реЗрд░реАрдЬрд╝ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред

@org.hibernate.annotations.NamedNativeQueries(
    @org.hibernate.annotations.NamedNativeQuery(name = "Employee_GetAll",
  	query = "select * from employee",
  	resultClass = Employee.class)
)

рдФрд░ рд╣рд╛рдВ, рдпрд╣рд╛рдВ рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рд╣реИ:

NativeQuery<Employee> query = session.createNamedQuery("Employee_GetAll", Employee.class);
List<Employee> resultLIst = query.list();
рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ
  • рд▓реЛрдХрдкреНрд░рд┐рдп
  • рдирдпрд╛
  • рдкреБрд░рд╛рдирд╛
рдЯрд┐рдкреНрдкрдгреА рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рд╕рд╛рдЗрди рдЗрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛
рдЗрд╕ рдкреЗрдЬ рдкрд░ рдЕрднреА рддрдХ рдХреЛрдИ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдирд╣реАрдВ рд╣реИрдВ