উদাহরণ সহ Native SQL Query পরিচালনা

Spring ORM এবং Native SQL Queries - স্প্রিং ওআরএম (Spring ORM) - Java Technologies

280

Spring ORM এর মাধ্যমে Native SQL Query ব্যবহার করে সরাসরি ডেটাবেজের সাথে কাজ করা যায়। Hibernate এবং JPA উভয়ই Native SQL Query সাপোর্ট করে। যখন জটিল বা নির্দিষ্ট ডেটাবেজ অপারেশন প্রয়োজন হয়, তখন Native SQL Query ব্যবহার কার্যকর হতে পারে।

Spring ORM Hibernate ইন্টিগ্রেশন ব্যবহার করলে Hibernate এর createSQLQuery() এবং JPA এর @Query বা EntityManager.createNativeQuery() মেথডের মাধ্যমে Native SQL Query পরিচালনা করা যায়।


Native SQL Query ব্যবহারের কারণ

  • ডেটাবেজ-নির্ভর অপ্টিমাইজড কোয়েরি প্রয়োজন হলে।
  • জটিল বা কাস্টম কোয়েরি, যা ORM ফিচারে সহজে করা সম্ভব নয়।
  • পূর্বে বিদ্যমান SQL কোয়েরি পুনরায় ব্যবহার করতে হলে।

Hibernate এর মাধ্যমে Native SQL Query

উদাহরণ:

@Transactional
public List<Object[]> getEmployeesByDepartment(String department) {
    String sql = "SELECT e.id, e.name, e.salary FROM employee e WHERE e.department = :department";
    Query query = sessionFactory.getCurrentSession().createSQLQuery(sql);
    query.setParameter("department", department);
    return query.list();
}

বর্ণনা:

  • createSQLQuery() ব্যবহার করে Native SQL Query তৈরি করা হয়।
  • setParameter() দিয়ে প্যারামিটার সেট করা হয়।
  • list() মেথড ব্যবহার করে রেজাল্ট রিটার্ন করা হয়।

JPA এর মাধ্যমে Native SQL Query

উদাহরণ:

@Repository
public class EmployeeRepository {

    @PersistenceContext
    private EntityManager entityManager;

    public List<Object[]> getEmployeesByDepartment(String department) {
        String sql = "SELECT e.id, e.name, e.salary FROM employee e WHERE e.department = :department";
        Query query = entityManager.createNativeQuery(sql);
        query.setParameter("department", department);
        return query.getResultList();
    }
}

বর্ণনা:

  • createNativeQuery() মেথড ব্যবহার করা হয়।
  • setParameter() দিয়ে SQL প্যারামিটার সেট করা হয়।
  • getResultList() মেথড রেজাল্ট লিস্ট আকারে প্রদান করে।

@Query ব্যবহার করে Native SQL Query

JPA এর ক্ষেত্রে @Query অ্যানোটেশন ব্যবহার করে Native SQL Query লেখা যায়।

উদাহরণ:

@Repository
public interface EmployeeRepository extends JpaRepository<Employee, Integer> {

    @Query(value = "SELECT * FROM employee e WHERE e.department = :department", nativeQuery = true)
    List<Employee> findByDepartment(@Param("department") String department);
}

বর্ণনা:

  • @Query এর মাধ্যমে SQL কোয়েরি সরাসরি লেখা হয়।
  • nativeQuery = true নির্দেশ করে এটি একটি Native Query।
  • @Param ব্যবহার করে প্যারামিটার পাস করা হয়।

উদাহরণ: Native SQL Query প্রয়োগ

সার্ভিস ক্লাস উদাহরণ:

@Service
public class EmployeeService {

    @Autowired
    private EmployeeRepository employeeRepository;

    public List<Employee> getEmployeesByDepartment(String department) {
        return employeeRepository.findByDepartment(department);
    }
}

কন্ট্রোলার ক্লাস উদাহরণ:

@RestController
@RequestMapping("/employees")
public class EmployeeController {

    @Autowired
    private EmployeeService employeeService;

    @GetMapping("/department/{department}")
    public List<Employee> getEmployeesByDepartment(@PathVariable String department) {
        return employeeService.getEmployeesByDepartment(department);
    }
}

Spring ORM ব্যবহার করে Native SQL Query ডেটাবেজ অপারেশনে নমনীয়তা প্রদান করে। এর মাধ্যমে জটিল কোয়েরি সহজে বাস্তবায়ন করা যায় এবং Spring এর ট্রানজেকশন ব্যবস্থাপনার সুবিধাও উপভোগ করা যায়।

Content added By
Promotion

Are you sure to start over?

Loading...