ORM

A collection of 13 posts

hibernate

12.2.8. Transaction management strategies

TransactionTemplate 나 TransactionInterceptor 를 사용하든 둘 다 PlatformTransactionManager 객체를 사용하고 있습니다. Hibernate를 위해 사용할 수 있는 TransactionManager로는 두 개가 있습니다. 1. HibernateTransactionManager :: for a single Hibernate SessionFactory, using a ThreadLocal  Session under the hood2. JtaTransactionManager :: delegating to the JTA subsystem of the container물론

hibernate

12.2.7. Declarative transaction demarcation

이번엔 선언적인 트랜잭션 경계 설정에 관해 살펴보겠습니다. Spring AOP를 사용하는 방법으로 이전에는 Service Layer에 트랜잭션과 관련된 코드가 들어있었다면 Service Layer이 오직 자신의 본연의 임무에만 충실할 수 있도록 코드가 다음과 같이 바뛰게 됩니다. public class ProductServiceImpl implements ProductService { private ProductDao productDao; public void setProductDao(ProductDao

hibernate

12.2.6. Programmatic transaction demarcation

프로그래밍적인 방법으로 트랜잭션 경계를 지정하는 방법은 다음과 같이 비즈니스 로직 부분에 PlatformTransactionManager 를 인스턴스로 등록하고 Setter Injection을 사용하는 것입니다. <beans> <bean id="myTxManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="mySessionFactory"/> </bean> <

hibernate

12.2.5. Implementing DAOs based on plain Hibernate3 API

Hibernate 3.0.1 에서는 “Contexture Sessions”라고 부르는, 트랜잭션 당 하나의 current 세션을 사용하는 방법이 있습니다. public class ProductDaoImpl implements ProductDao { private SessionFactory sessionFactory; public void setSessionFactory(SessionFactory sessionFactory) { this.sessionFactory = sessionFactory; } public Collection loadProductsByCategory(String category) { return this.sessionFactory.getCurrentSession(

hibernate

레퍼런스 12장에 오타

문제가 발생한 코드는 Spring Reference에 있던 소스 코드입니다. public class ProductDaoImpl extends HibernateDaoSupport implements ProductDao { public Collection loadProductsByCategory(String category) throws DataAccessException, MyException { Session session = getSession(getSessionFactory(), false); try { List result = session.find( "from test.Product product where product.category=?", category, Hibernate.STRING); if

hibernate

12.2.4. Implementing Spring-based DAOs without callbacks

콜백 메소드를 사용하지 않고 HibernateDaoSupport로 부터 Session을 구해서 다음과 같이 코딩할 수 있습니다. public class ProductDaoImpl extends HibernateDaoSupport implements ProductDao {     public Collection loadProductsByCategory(String category)            throws DataAccessException, MyException {         Session session = getSession(getSessionFactory(

hibernate

12.2.1. Resource management

자원을 관리하는 코드가 보통 사방에 흩어져 있게 됩니다. 하지만 스프링에서는 이런 자원 관리간단하면서도 강력한 방법인 tamplate을 사용한 IoC를 이용해서 관리합니다. 자원을 관리하는 기능과 SQLException을 보다 구체적이고 un-checked Exception인 DataAccessException으로 래핑해줍니다. HibernateTemplate, HibernateInterceptor, HibernateTransactionManager 이런 클래스들을 제공하는 가장 주요한 목적1. 어플리케이션에서 Data Access와 Transaction 기술을

You've successfully subscribed to Whiteship!
Could not sign up! Invalid sign up link.