Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package cs544.blog.service; import cs544.blog.dao.IPostDAO; import cs544.blog.dao.IUserDAO; import cs544.blog.dao.UserDAOHibernate; import cs544.blog.entities.Post; import cs544.blog.entities.User; import cs544.blog.entities.User; import java.util.List; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; /** * * @author ajay */ @Service("blogService") public class BlogService implements IBlogService { private IUserDAO userDAO; private IPostDAO postDAO; public BlogService() { //this.userDAO = new UserDAOHibernate(); } public BlogService(IUserDAO userDAO) { this.userDAO = userDAO; } public void setUserDAO(IUserDAO userDAO) { this.userDAO = userDAO; } public IPostDAO getPostDAO() { return postDAO; } public void setPostDAO(IPostDAO postDAO) { this.postDAO = postDAO; } public void init() { // createUser("ajay","ajay"); } @Transactional(propagation = Propagation.REQUIRES_NEW) @Override public List<Post> getAllPost() { return userDAO.getAllPosts(); } @Transactional(propagation = Propagation.REQUIRES_NEW) @Override public List<Post> getUserPosts(long userId) { return userDAO.getUserPosts(userId); } @Override @Transactional(propagation = Propagation.REQUIRES_NEW) public User createUser(String username, String password) { // Transaction tx = sessionFactory.getCurrentSession().beginTransaction(); User user = new User(username, password); userDAO.saveUser(user); // tx.commit(); return user; } // @Transactional(propagation = Propagation.REQUIRES_NEW) @Override public User getUser(String username) { return userDAO.getUser(username); } @Transactional(propagation = Propagation.REQUIRES_NEW) @Override public User loadUser(long userId) { return userDAO.loadUser(userId); } @Transactional(propagation = Propagation.REQUIRES_NEW) @Override public void updateUser(User user) { userDAO.updateUser(user); } @Transactional(propagation = Propagation.REQUIRES_NEW) @Override public void deleteUser(long userId) { userDAO.deleteUser(userId); } @Transactional(propagation = Propagation.REQUIRES_NEW) @Override public List<User> getAllUser() { List<User> users = userDAO.getUserList(); // tx.commit(); return users; } @Transactional(propagation = Propagation.REQUIRES_NEW) @Override public Post createPost(long id, String title, String contents) { //Transaction tx = HibernateUtil.getSessionFactory().getCurrentSession().beginTransaction(); // Transaction tx = sessionFactory.getCurrentSession().beginTransaction(); User user = loadUser(id); Post post = new Post(title, contents); post.setUser(user); //userDAO.updateUser(user); postDAO.savePost(post); // tx.commit(); return post; } @Transactional(propagation = Propagation.REQUIRES_NEW) @Override public Post getPost(long id) { return postDAO.getPost(id); } @Transactional(propagation = Propagation.REQUIRES_NEW) @Override public void updatePost(long id, Post post) { System.err.println("post title in DAO " + post.getTitle()); postDAO.updatePost(id, post); } @Transactional(propagation = Propagation.REQUIRES_NEW) @Override public void deletePost(long postId) { postDAO.deletePost(postId); } }