Advertisement
purluno

purluno.springrain.book.BookService

Apr 21st, 2014
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Groovy 1.89 KB | None | 0 0
  1. package purluno.springrain.book
  2.  
  3. import javax.annotation.Resource
  4.  
  5. import org.hibernate.Session
  6. import org.springframework.stereotype.Service
  7.  
  8. import purluno.springrain.HibernateHelper
  9.  
  10. @Service
  11. class BookService {
  12.     /**
  13.      * Hibernate 지원 객체
  14.      */
  15.     @Resource
  16.     HibernateHelper hib
  17.  
  18.     /**
  19.      * 특정 id의 책 정보를 가져온다.
  20.      *
  21.      * @param id
  22.      *     책 정보 ID
  23.      * @return
  24.      *     책 정보 객체. 또는, 책이 없을 경우 null.
  25.      */
  26.     Book getById(long id) {
  27.         hib.transactional { Session session ->
  28.             session.get(Book, id)
  29.         }
  30.     }
  31.  
  32.     /**
  33.      * 특정 ISBN을 가진 책 정보를 가져온다.
  34.      *
  35.      * @param isbn
  36.      *     ISBN
  37.      * @return
  38.      *     책 정보 객체. 또는, 책이 없을 경우 null.
  39.      */
  40.     Book getByIsbn(String isbn) {
  41.         assert isbn != null, "ISBN은 null이 아니어야 합니다."
  42.         assert !isbn.empty, "ISBN은 빈 문자열이 아니어야 합니다."
  43.         hib.transactional { Session session ->
  44.             session.bySimpleNaturalId(Book).load(isbn)
  45.         }
  46.     }
  47.  
  48.     /**
  49.      * 책 정보를 생성한다.
  50.      *
  51.      * @param book
  52.      */
  53.     void save(Book book) {
  54.         assert book.isbn != null, "ISBN은 null이 아니어야 합니다."
  55.         assert !book.isbn.empty, "ISBN은 빈 문자열이 아니어야 합니다."
  56.         hib.transactional { Session session ->
  57.             session.save(book)
  58.         }
  59.     }
  60.  
  61.     /**
  62.      * 책 정보를 갱신한다.
  63.      *
  64.      * @param book
  65.      */
  66.     void update(Book book) {
  67.         assert book.id != null, "ID는 null이 아니어야 합니다."
  68.         hib.transactional { Session session ->
  69.             session.update(book)
  70.         }
  71.     }
  72.  
  73.     /**
  74.      * 책 정보를 삭제한다.
  75.      *
  76.      * @param id
  77.      *     삭제할 책 정보의 ID
  78.      */
  79.     void delete(long id) {
  80.         hib.transactional { Session session ->
  81.             session.delete(new Book(id: id))
  82.         }
  83.     }
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement