You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Frans Thamura <fr...@meruvian.org> on 2010/08/18 02:55:24 UTC
REST on Struts2 - DAO - Service
hi all
we create an example using Struts2-Spring-Hibernate, using Spring way,
DAO-Services
this is the SVN
http://ugforge.gunadarma.ac.id/svn/cimande/branches/rest-struts
the project run perfectly
but we use this package for @Services and @Transactional
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
my idea to remove all depedency with Spring
any idea to replace this code?
this is the full code
/**
* PersonServiceImpl.java
*
* Created on 01 Agu 2010 13:07:24
*/
package org.blueoxygen.cimande.example.geneology.service;
import java.sql.Timestamp;
import java.util.List;
import org.blueoxygen.cimande.example.geneology.Person;
import org.blueoxygen.cimande.example.geneology.dao.PersonDAO;
import org.blueoxygen.cimande.security.SessionCredentials;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* @author Dian Aditya
*
*/
@Service
@Transactional(readOnly = true)
public class PersonServiceImpl implements PersonService {
@Autowired
private PersonDAO personDao;
@Autowired
private SessionCredentials credentials;
@Transactional
public void save(Person person) {
if (credentials.getCurrentUser() != null) {
person.getLogInformation().setLastUpdateBy(
credentials.getCurrentUser().getId());
person.getLogInformation().setLastUpdateDate(
new Timestamp(System.currentTimeMillis()));
person.getLogInformation().setCreateBy(
credentials.getCurrentUser().getId());
person.getLogInformation().setCreateDate(
new Timestamp(System.currentTimeMillis()));
}
personDao.persist(person);
}
@Transactional
public void update(Person person) {
Person temp = personDao.getById(Person.class, person.getId());
if (temp != null) {
if (credentials.getCurrentUser() != null) {
person.getLogInformation().setLastUpdateBy(
credentials.getCurrentUser().getId());
person.getLogInformation().setLastUpdateDate(
new Timestamp(System.currentTimeMillis()));
}
personDao.merge(person);
}
}
@Transactional
public void delete(Person person) {
Person temp = personDao.getById(Person.class, person.getId());
if (temp != null) {
List<Person> childs = personDao.getChilds(temp);
if (temp.isMale()) {
for (Person c : childs) {
c.setFather(null);
personDao.persist(c);
}
} else {
for (Person c : childs) {
c.setMother(null);
personDao.persist(c);
}
}
personDao.remove(temp);
}
}
@Transactional(readOnly = true)
public List<Person> getPersons() {
return personDao.findAll(Person.class);
}
@Transactional(readOnly = true)
public List<Person> getPersons(String field, String contain) {
return personDao.find(Person.class, field, contain);
}
@Transactional(readOnly = true)
public Person getPerson(String id) {
return personDao.getById(Person.class, id);
}
@Transactional(readOnly = true)
public List<Person> getChilds(Person parent) {
return personDao.getChilds(parent);
}
@Transactional(readOnly = true)
public List<Person> getChildsList(Person parent) {
return personDao.getCildsList(parent);
}
}