解决方案 »
- 关于<s:iterator>输出标签与js更改标签属性问题.
- struts <s:if>获取boolean的值
- 急,Unable to compile class for JSP
- 关于jsp时间问题,麻烦各位了~~
- xml文件的dom树存储问题
- 求救
- 流水号的生成及应中的实际问,及别扭的hibernate映射
- 一个div的内容来自于数据库,我想1分钟一刷新,怎么做?
- 感觉jsf比asp.net 差多了
- webservice连接数据库出错!!!请大虾帮忙阿。。。。。。。。。。救命!
- jackson处理json,类中的某个属性是个父类,根据json字符串可变时,怎么转换
- 搞过自动生成class文件的进
public BasicDao(){
//Type genType = getClass().getGenericSuperclass();
//Type[] params=((ParameterizedType)genType).getActualTypeArguments();
//entityClass = (Class)params[0];
}把构造方法里面的代码先注释掉,再测试一下。还有那个public T get(Serializable id)这个方法也注释掉,因为用到了entityClass.
先确定问题在哪里。如果注释掉运行find能找到数据而且不报错的话就想想如何替代这个entityClass的获取方式。
因为没有使用过SSH框架,意见只供参考。
首先定义一个注解package com.web.annotation;import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;/**
* 用于标注该DAOImpl类所对应的实体类的名字是什么,以便获取相应的实体类
* @author
*
*/@Retention(RetentionPolicy.RUNTIME)//代表在运行期保留注解
@Target(ElementType.TYPE)//代表用于类中
public @interface EntityClassName {
/**
* 标注对应的实体类名
* @return 对应的实体类名
*/
String value();}
然后在BasicDao里写一个方法/**
* 获取该DAO实现类的对应的实体类
* @return 实体类
* @throws Exception
*/
private Class<?> getPOJOClass() throws Exception{
Class<?> pojoClass = null;
//先判断该实现类的实体类注解是否存在
if(this.getClass().isAnnotationPresent(EntityClassName.class)){
//如果存在获取该注解(即实体类的名字)
String className = ((EntityClassName)getClass().
getAnnotation(EntityClassName.class)).value();
//通过反射获取该实体类
pojoClass = Class.forName(className);
}
return pojoClass;
}
你要用到实体类的时候就用这个方法获取然后在你的UserDAO上打上这个注解package com.user.dao;
import com.jdbc.bean.User;
import com.util.BasicDao;@EntityClassName("com.web.bean.User") //标注该DAO类是对应于哪个实体类,(包名改成你自己的)
public class UserDao extends BasicDao<User> {
}