Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package purluno.springrain.book
- import javax.annotation.Resource
- import org.hibernate.Session
- import org.springframework.stereotype.Service
- import purluno.springrain.HibernateHelper
- @Service
- class BookService {
- /**
- * Hibernate 지원 객체
- */
- @Resource
- HibernateHelper hib
- /**
- * 특정 id의 책 정보를 가져온다.
- *
- * @param id
- * 책 정보 ID
- * @return
- * 책 정보 객체. 또는, 책이 없을 경우 null.
- */
- Book getById(long id) {
- hib.transactional { Session session ->
- session.get(Book, id)
- }
- }
- /**
- * 특정 ISBN을 가진 책 정보를 가져온다.
- *
- * @param isbn
- * ISBN
- * @return
- * 책 정보 객체. 또는, 책이 없을 경우 null.
- */
- Book getByIsbn(String isbn) {
- assert isbn != null, "ISBN은 null이 아니어야 합니다."
- assert !isbn.empty, "ISBN은 빈 문자열이 아니어야 합니다."
- hib.transactional { Session session ->
- session.bySimpleNaturalId(Book).load(isbn)
- }
- }
- /**
- * 책 정보를 생성한다.
- *
- * @param book
- */
- void save(Book book) {
- assert book.isbn != null, "ISBN은 null이 아니어야 합니다."
- assert !book.isbn.empty, "ISBN은 빈 문자열이 아니어야 합니다."
- hib.transactional { Session session ->
- session.save(book)
- }
- }
- /**
- * 책 정보를 갱신한다.
- *
- * @param book
- */
- void update(Book book) {
- assert book.id != null, "ID는 null이 아니어야 합니다."
- hib.transactional { Session session ->
- session.update(book)
- }
- }
- /**
- * 책 정보를 삭제한다.
- *
- * @param id
- * 삭제할 책 정보의 ID
- */
- void delete(long id) {
- hib.transactional { Session session ->
- session.delete(new Book(id: id))
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement