2012-01-23 3 views
0

Java 웹 응용 프로그램에서 작업 중이며 보안상의 이유로 데이터베이스 API를 통해 데이터베이스 (PostgreSQL)에 액세스하려고합니다. 데이터베이스의 API는 데이터베이스 기능에 의해 빌드됩니다.테이블 API로 EntityManager 사용

어떻게 EntityManager로 API 함수를 호출 할 수 있습니까? 네이티브 쿼리로 길을 찾았지만 ORM이별로 남아 있지 않다고 생각합니다. entityManager.persist() 메서드를 데이터베이스 함수 중 하나에 연결하는 방법이 있습니까?

+0

그래서 기본적으로'em.persist (...)'가 사용자 지정 데이터베이스 함수를 호출하기를 원합니 까? – Perception

+0

예, 그렇게 할 수 있습니까? – tvoi

답변

0

이것은 좋지 않습니다. JPA의 전체 요점은 데이터베이스가 액세스되고 객체 계층에 매핑되는 방식을 표준화하는 것입니다. 네이티브 DB 함수를 사용하려면 SpringJDBCTemplate 또는 통증을 완화시키는 다른 도구를 통해 JDBC를 사용해야합니다. 자신을 처벌하려는 느낌이 든다면 EntityManager의 구현을 직접 만들고 클래스에서 사용할 수 있습니다.

+0

하지만 API 함수를 호출하는 권한이없는 db-user를 통해서만 데이터베이스에 액세스 할 수 있어야합니다. 그런 메커니즘을 사용하기 위해 EntityManager를 사용해서는 안됩니다. 다른 접근법이 있습니까? – tvoi

+0

이러한 API 함수를 사용해야하는 비즈니스 또는 기술지도 지시자가있는 경우, 그럴 수도 있습니다. 그러면 구석에 그려집니다. 그 제한을 준 사람이 누구든 제한을 통해 기술 옵션을 제한한다는 것을 알고 있는지 확인하십시오. JDBC를 사용하는 것이 가장 좋은 방법 일 것입니다. – Perception