You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
1.9 KiB
78 lines
1.9 KiB
package core.dao;
|
|
|
|
import db.model.AbstractModel;
|
|
import org.hibernate.SessionFactory;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.dao.DataAccessException;
|
|
import org.springframework.orm.hibernate5.HibernateTemplate;
|
|
import org.springframework.stereotype.Repository;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
import java.io.Serializable;
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
/**
|
|
* Created by reborn on 2017/7/31.
|
|
*/
|
|
|
|
@Repository
|
|
public class BaseDao1 extends HibernateTemplate{
|
|
|
|
@Autowired
|
|
public BaseDao1(SessionFactory aliyun) {
|
|
super(aliyun);
|
|
}
|
|
|
|
|
|
public <T extends AbstractModel> T save(T entity) {
|
|
try {
|
|
super.save(entity);
|
|
}catch (DataAccessException e){
|
|
entity.setDataAccessException(e);
|
|
}
|
|
return entity;
|
|
}
|
|
|
|
public <T extends AbstractModel> T update(T entity){
|
|
try {
|
|
super.update(entity);
|
|
}catch (DataAccessException e){
|
|
entity.setDataAccessException(e);
|
|
}
|
|
return entity;
|
|
|
|
}
|
|
|
|
public <T extends AbstractModel> T get(T entity){
|
|
try{
|
|
entity=(T)(super.get(entity.getClass(),entity.primaryKey()));
|
|
}catch (DataAccessException e){
|
|
entity.setDataAccessException(e);
|
|
}
|
|
return entity;
|
|
}
|
|
|
|
public <T extends AbstractModel> T delete(T entity) {
|
|
|
|
T model = get(entity);
|
|
try {
|
|
if ( entity.getDataAccessException()!= null) {
|
|
super.delete(model);
|
|
}
|
|
} catch (DataAccessException e) {
|
|
entity.setDataAccessException(e);
|
|
}
|
|
return entity;
|
|
}
|
|
|
|
public <T extends AbstractModel> List<T> delete(List<T> entitys) {
|
|
List<T> result=new ArrayList<>();
|
|
for(T entity:entitys){
|
|
result.add(delete(entity));
|
|
}
|
|
return result;
|
|
}
|
|
|
|
|
|
}
|
|
|