exiashna 2015-05-02 02:55 采纳率: 0%
浏览 2840

@Resource("userDao")出现 属性值是未定义类型 错误提示

import javax.annotation.Resource;
import org.springframework.stereotype.Service;

import com.kfz.surveypark.dao.BaseDao;
import com.kfz.surveypark.model.User;
import com.kfz.surveypark.service.UserService;

@Service("userService")
public class UserServiceImpl extends BaseServiceImplimplements UserService{

@Resource(value="userDao")
public void setDao(BaseDao<User> dao) {
    super.setDao(dao);
}

}
以下是 BaseServiceImpl,BaseDaoImpl
import java.util.List;
import javax.annotation.Resource;
import com.kfz.surveypark.dao.BaseDao;
import com.kfz.surveypark.service.BaseService;

public abstract class BaseServiceImpl implements BaseService {

private BaseDao<T> dao;

//注入dao
@Resource
public void setDao(BaseDao dao) {
this.dao = dao;
}

@Override
public void saveEntity(T t) {
    dao.saveEntity(t);

}


@Override
public void deleteEntity(T t) {
    dao.deleteEntity(t);;

}
@Override
public void saveOrUpdateEntity(T t) {
    dao.saveOrUpdateEntity(t);

}

@Override
public void updateEntity(T t) {
    dao.updateEntity(t);

}

@Override
public void batchEntityByHQL(String hql, Object... objects) {
    dao.batchEntityByHQL(hql, objects);

}

@Override
public T loadEntity(Integer id) {

    return dao.loadEntity(id);
}

@Override
public T getEntity(Integer id) {

    return dao.getEntity(id);
}

@Override
public List<T> findEntityByHQL(String hql, Object... objects) {

    return dao.findEntityByHQL(hql, objects);
}
}

BaseDaoImpl类
import java.lang.reflect.ParameterizedType;

import java.util.List;
import javax.annotation.Resource;
import org.hibernate.Query;
import org.hibernate.SessionFactory;

import com.kfz.surveypark.dao.BaseDao;
/*

  • 抽象的实现, / @SuppressWarnings("unchecked") public abstract class BaseDaoImpl implements BaseDao{ //注入 SessionFactory @Resource private SessionFactory sf; /*
  • 利用反射得到 T 实例对象 如,User, Survey
  • */
    private Class clazz;

    public BaseDaoImpl(){
    ParameterizedType pt=(ParameterizedType) this.getClass().getGenericSuperclass();
    clazz=(Class)pt.getActualTypeArguments()[0];
    }

    @Override
    public void saveEntity(T t) {
    sf.getCurrentSession();
    }

    @Override
    public void deleteEntity(T t) {
    sf.getCurrentSession();

    }
    @Override
    public void saveOrUpdateEntity(T t) {
    sf.getCurrentSession();
    }

    @Override
    public void updateEntity(T t) {
    sf.getCurrentSession();

    }

    @Override
    public void batchEntityByHQL(String hql, Object... objects) {
    Query q=sf.getCurrentSession().createQuery(hql);
    for(int i=0;i<objects.length;i++){
    q.setParameter(i, objects[i]);
    }
    q.executeUpdate();
    }

    @Override
    public T loadEntity(Integer id) {
    return (T) sf.getCurrentSession().load(clazz, id);
    }

    @Override
    public T getEntity(Integer id) {
    return (T)sf.getCurrentSession().get(clazz,id);
    }

    @Override
    public List findEntityByHQL(String hql, Object... objects) {
    Query q=sf.getCurrentSession().createQuery(hql);
    for(int i=0;i<objects.length;i++){
    q.setParameter(i, objects[i]);
    }
    return q.list();
    }

  • 写回答

1条回答

  • exiashna 2015-05-02 06:23
    关注

    把@Resource(value="userDao")改为@Resource(name="userDao"),
    1.另外说明 @Resource若要指定值必须是 @Resuouce(name="xxx")的形式
    2.@Resource 什么都不写,取值为 属性名,setxxx()方法 的名字xxx,首字母小写

    评论

报告相同问题?

悬赏问题

  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿