首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

Spring配置错误,BaseDAO<T>类型怎么配置

2013-09-10 
Spring配置异常,BaseDAOT类型如何配置。我就很纳闷不知道为什么会出错,请大家看一眼。IBaseDAO接口。public

Spring配置异常,BaseDAO<T>类型如何配置。
我就很纳闷不知道为什么会出错,请大家看一眼。
IBaseDAO接口。


public interface IBaseDAO<T, ID extends Serializable> {

public T findById(ID id);

public T findById(Class c, ID id);
}

BaseDAO实现类

public class BaseDAO<T, ID extends Serializable> extends HibernateDaoSupport implements IBaseDAO<T, ID> {
private Class<T> persistentClass;

@SuppressWarnings("unchecked")
public BaseDAO(Class clazz) {
this.persistentClass = clazz;
}
public T findById(ID id){
return null;
}

public T findById(Class c, ID id){
                  System.out.println("进来了");
return null;
}

//getter && setter
public Class<T> getPersistentClass() {
return persistentClass;
}
public void setPersistentClass(Class<T> persistentClass) {
this.persistentClass = persistentClass;
}
}


UserDAO接口

public interface IBaseUserDAO {
public void findById(String id);
}


UserDAO实现。

@SuppressWarnings("unchecked")
public class BaseUserDAO extends BaseDAO implements IBaseUserDAO {

private BaseDAO baseDao;

public BaseUserDAO(String clazz) throws ClassNotFoundException {
//Class.forName("BaseDAOTest");
//System.out.println(clazz);
super(Class.forName("cn.aozer.armsweb.entity.Users"));
}

public void findById(String id) {
System.out.println("User DAO");
Users u = (Users)this.findById(Users.class,id);
System.out.println(u.getUsername());
System.out.println(u.getPassword());
}

public BaseDAO getBaseDao() {
return baseDao;
}

public void setBaseDao(BaseDAO baseDao) {
this.baseDao = baseDao;
}
}


最后是spring、配置文件

<bean id="baseDao" class="test.BaseDAO" >
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="baseUser" class="test.BaseDAOTestForUserDAO" parent="baseDao">


<property name="baseDao" ref="baseDao"></property>
</bean>



在没有添加这些代码之前运行时没有问题的。。。现在不行了。。。

求指教,是因为<T>的源码?还是因为继承的关系啊...

我就不明白了...

启动就报错...

求指教...

[解决办法]
我知道错误在哪里了.
这里你用了一个有参构造,没有生命无惨构造,
需要显示声明有无惨构造才行.

public class BaseDAO<T, ID extends Serializable> extends HibernateDaoSupport implements IBaseDAO<T, ID> {
    private Class<T> persistentClass;

    @SuppressWarnings("unchecked")
    public BaseDAO(Class clazz) {
        this.persistentClass = clazz;
    }

热点排行