Invalid property 'target' of bean class [com.comm.BaseDAOImpl]:Bean property 'target' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
提示我这个错误,我这个BaseDAOImpl.java代码如下:
package com.comm;
//包省略
@SuppressWarnings("unchecked")
public class BaseDAOImpl<T, PK extends Serializable> extends
HibernateDaoSupport implements BaseDAO<T, PK> {
private final static Logger logger = Logger.getLogger(BaseDAOImpl.class);
protected Class<T> clazz;
public BaseDAOImpl() {
}
public BaseDAOImpl(Class<T> clazz) {
this.clazz = clazz;
}
public PK create(T o) {
return (PK) this.getHibernateTemplate().save(o);
}
public void create(T o, Serializable pk) {
this.getHibernateTemplate().save((String)o, pk);
}
public void save(T o) {
this.getHibernateTemplate().saveOrUpdate(o);
}
public T find(PK id) {
Object o = this.getHibernateTemplate().load(clazz, id);
return (T) o;
}
public T get(PK id) {
Object o = this.getHibernateTemplate().get(clazz, id);
return (T) o;
}
public void update(T o) {
this.getHibernateTemplate().update(o);
}
public void delete(PK id) {
getHibernateTemplate().delete(find(id));
}
public void delete(T o) {
this.getHibernateTemplate().delete(o);
}
public void deleteAll(Collection<T> entities) {
getHibernateTemplate().deleteAll(entities);
}
public List<T> list() {
return this.getHibernateTemplate().loadAll(clazz);
}
/**
* 去除select 子句,未考虑union的情况
*/
private static String removeSelect(String hql) {
Assert.hasText(hql);
int beginPos = hql.toLowerCase().lastIndexOf("from");
Assert.isTrue(beginPos != -1, " hql : " + hql
+ " must has a keyword 'from'");
return hql.substring(beginPos);
} /**
* 去除select 子句,未考虑union的情况
*/
private static String removeFirstSelect(String hql) {
Assert.hasText(hql);
int beginPos = hql.toLowerCase().indexOf("from");
Assert.isTrue(beginPos != -1, " hql : " + hql
+ " must has a keyword 'from'");
return hql.substring(beginPos);
}
/**
* 去除orderby 子句
*/
private static String removeOrders(String hql) {
Assert.hasText(hql);
Pattern p = Pattern.compile("order\\s*by[\\w|\\W|\\s|\\S]*",
Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(hql);
StringBuffer sb = new StringBuffer();
while (m.find()) {
m.appendReplacement(sb, "");
}
m.appendTail(sb);
return sb.toString();
}
public Object getObject(String hql){
Query query = getSession().createQuery(hql);
List list = query.list();
if(list == null || list.size() <= 0){
return null;
}
return list.get(0);
}
public List list(String hql, int topNumber, Object... args) {
Assert.hasText(hql); Query query = getSession().createQuery(hql);
for (int i = 0; i < args.length; i++) {
query.setParameter(i, args[i]);
}
query.setMaxResults(topNumber); return (List) query.list();
} public List list(String hql, Object... args) {
return this.list(hql, new Pager(), args);
} public List listBySQL(String sql, String alias, Class clazz, Object... args) {
return this.listBySQL(sql, new Pager(), alias, clazz, args);
} public List listBySQL(String sql, Object[] args) {
Query sqlQuery = getSession().createSQLQuery(sql); if (args != null) {
for (int i = 0; i < args.length; i++) {
sqlQuery.setParameter(i, args[i]);
}
} return sqlQuery.list();
} public List listBySQL2(String sql, Pager pager, String alias, Class clazz,
Object... args) {
Assert.hasText(sql); SQLQuery query = getSession().createSQLQuery(sql);
for (int i = 0; i < args.length; i++) {
query.setParameter(i, args[i]);
} if (pager == null || pager.getPageNumber() == 0) {
return query.addEntity(alias, clazz).list();
} // 取总数
String countQueryString = "select count(*) from " + "(select * "
+ removeFirstSelect(removeOrders(sql)) + ") temp_count";
Query queryCount = getSession().createSQLQuery(countQueryString);
for (int i = 0; i < args.length; i++) {
queryCount.setParameter(i, args[i]);
}
List countlist = queryCount.list();
int totalCount = ((BigDecimal) countlist.get(0)).intValue(); pager.setTotalObjects(totalCount);
pager.calc(); query.setFirstResult(pager.getFirstResult());
query.setMaxResults(pager.getPageSize()); return query.addEntity(alias, clazz).list();
} public List listBySQL(String sql, Pager pager, String alias, Class clazz,
Object... args) {
Assert.hasText(sql); SQLQuery query = getSession().createSQLQuery(sql);
for (int i = 0; i < args.length; i++) {
query.setParameter(i, args[i]);
} if (pager == null || pager.getPageNumber() == 0) {
return query.addEntity(alias, clazz).list();
} // 取总数
String countQueryString = "select count(*) from " + "(select * "
+ removeSelect(removeOrders(sql)) + ") temp_count";
Query queryCount = getSession().createSQLQuery(countQueryString);
for (int i = 0; i < args.length; i++) {
queryCount.setParameter(i, args[i]);
}
List countlist = queryCount.list();
int totalCount = ((BigDecimal) countlist.get(0)).intValue(); pager.setTotalObjects(totalCount);
pager.calc(); query.setFirstResult(pager.getFirstResult());
query.setMaxResults(pager.getPageSize()); return query.addEntity(alias, clazz).list();
} public List list(String hql, Pager pager, Object... args) {
Query query = getSession().createQuery(hql);
for (int i = 0; i < args.length; i++) {
query.setParameter(i, args[i]);
} if (pager == null || pager.getPageNumber() == 0) {
return (List) query.list();
} // 取总数
String countQueryString = " select count (*) "
// + removeSelect(removeOrders(hql));
+ removeFirstSelect(hql);
List countlist = getHibernateTemplate().find(countQueryString, args);
int totalCount = (countlist != null && countlist.size() > 0) ? (Integer) countlist.get(0) : 0; pager.setTotalObjects(totalCount);
pager.calc(); query.setFirstResult(pager.getFirstResult());
query.setMaxResults(pager.getPageSize()); return (List) query.list();
} public List listByNamedQuery(String queryName, String[] argNames,
Object[] argValues) {
return this.getHibernateTemplate().findByNamedQueryAndNamedParam(
queryName, argNames, argValues);
} public void saveAll(Collection<T> entities) {
this.getHibernateTemplate().saveOrUpdateAll(entities);
}}
提示我这个错误,我这个BaseDAOImpl.java代码如下:
package com.comm;
//包省略
@SuppressWarnings("unchecked")
public class BaseDAOImpl<T, PK extends Serializable> extends
HibernateDaoSupport implements BaseDAO<T, PK> {
private final static Logger logger = Logger.getLogger(BaseDAOImpl.class);
protected Class<T> clazz;
public BaseDAOImpl() {
}
public BaseDAOImpl(Class<T> clazz) {
this.clazz = clazz;
}
public PK create(T o) {
return (PK) this.getHibernateTemplate().save(o);
}
public void create(T o, Serializable pk) {
this.getHibernateTemplate().save((String)o, pk);
}
public void save(T o) {
this.getHibernateTemplate().saveOrUpdate(o);
}
public T find(PK id) {
Object o = this.getHibernateTemplate().load(clazz, id);
return (T) o;
}
public T get(PK id) {
Object o = this.getHibernateTemplate().get(clazz, id);
return (T) o;
}
public void update(T o) {
this.getHibernateTemplate().update(o);
}
public void delete(PK id) {
getHibernateTemplate().delete(find(id));
}
public void delete(T o) {
this.getHibernateTemplate().delete(o);
}
public void deleteAll(Collection<T> entities) {
getHibernateTemplate().deleteAll(entities);
}
public List<T> list() {
return this.getHibernateTemplate().loadAll(clazz);
}
/**
* 去除select 子句,未考虑union的情况
*/
private static String removeSelect(String hql) {
Assert.hasText(hql);
int beginPos = hql.toLowerCase().lastIndexOf("from");
Assert.isTrue(beginPos != -1, " hql : " + hql
+ " must has a keyword 'from'");
return hql.substring(beginPos);
} /**
* 去除select 子句,未考虑union的情况
*/
private static String removeFirstSelect(String hql) {
Assert.hasText(hql);
int beginPos = hql.toLowerCase().indexOf("from");
Assert.isTrue(beginPos != -1, " hql : " + hql
+ " must has a keyword 'from'");
return hql.substring(beginPos);
}
/**
* 去除orderby 子句
*/
private static String removeOrders(String hql) {
Assert.hasText(hql);
Pattern p = Pattern.compile("order\\s*by[\\w|\\W|\\s|\\S]*",
Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(hql);
StringBuffer sb = new StringBuffer();
while (m.find()) {
m.appendReplacement(sb, "");
}
m.appendTail(sb);
return sb.toString();
}
public Object getObject(String hql){
Query query = getSession().createQuery(hql);
List list = query.list();
if(list == null || list.size() <= 0){
return null;
}
return list.get(0);
}
public List list(String hql, int topNumber, Object... args) {
Assert.hasText(hql); Query query = getSession().createQuery(hql);
for (int i = 0; i < args.length; i++) {
query.setParameter(i, args[i]);
}
query.setMaxResults(topNumber); return (List) query.list();
} public List list(String hql, Object... args) {
return this.list(hql, new Pager(), args);
} public List listBySQL(String sql, String alias, Class clazz, Object... args) {
return this.listBySQL(sql, new Pager(), alias, clazz, args);
} public List listBySQL(String sql, Object[] args) {
Query sqlQuery = getSession().createSQLQuery(sql); if (args != null) {
for (int i = 0; i < args.length; i++) {
sqlQuery.setParameter(i, args[i]);
}
} return sqlQuery.list();
} public List listBySQL2(String sql, Pager pager, String alias, Class clazz,
Object... args) {
Assert.hasText(sql); SQLQuery query = getSession().createSQLQuery(sql);
for (int i = 0; i < args.length; i++) {
query.setParameter(i, args[i]);
} if (pager == null || pager.getPageNumber() == 0) {
return query.addEntity(alias, clazz).list();
} // 取总数
String countQueryString = "select count(*) from " + "(select * "
+ removeFirstSelect(removeOrders(sql)) + ") temp_count";
Query queryCount = getSession().createSQLQuery(countQueryString);
for (int i = 0; i < args.length; i++) {
queryCount.setParameter(i, args[i]);
}
List countlist = queryCount.list();
int totalCount = ((BigDecimal) countlist.get(0)).intValue(); pager.setTotalObjects(totalCount);
pager.calc(); query.setFirstResult(pager.getFirstResult());
query.setMaxResults(pager.getPageSize()); return query.addEntity(alias, clazz).list();
} public List listBySQL(String sql, Pager pager, String alias, Class clazz,
Object... args) {
Assert.hasText(sql); SQLQuery query = getSession().createSQLQuery(sql);
for (int i = 0; i < args.length; i++) {
query.setParameter(i, args[i]);
} if (pager == null || pager.getPageNumber() == 0) {
return query.addEntity(alias, clazz).list();
} // 取总数
String countQueryString = "select count(*) from " + "(select * "
+ removeSelect(removeOrders(sql)) + ") temp_count";
Query queryCount = getSession().createSQLQuery(countQueryString);
for (int i = 0; i < args.length; i++) {
queryCount.setParameter(i, args[i]);
}
List countlist = queryCount.list();
int totalCount = ((BigDecimal) countlist.get(0)).intValue(); pager.setTotalObjects(totalCount);
pager.calc(); query.setFirstResult(pager.getFirstResult());
query.setMaxResults(pager.getPageSize()); return query.addEntity(alias, clazz).list();
} public List list(String hql, Pager pager, Object... args) {
Query query = getSession().createQuery(hql);
for (int i = 0; i < args.length; i++) {
query.setParameter(i, args[i]);
} if (pager == null || pager.getPageNumber() == 0) {
return (List) query.list();
} // 取总数
String countQueryString = " select count (*) "
// + removeSelect(removeOrders(hql));
+ removeFirstSelect(hql);
List countlist = getHibernateTemplate().find(countQueryString, args);
int totalCount = (countlist != null && countlist.size() > 0) ? (Integer) countlist.get(0) : 0; pager.setTotalObjects(totalCount);
pager.calc(); query.setFirstResult(pager.getFirstResult());
query.setMaxResults(pager.getPageSize()); return (List) query.list();
} public List listByNamedQuery(String queryName, String[] argNames,
Object[] argValues) {
return this.getHibernateTemplate().findByNamedQueryAndNamedParam(
queryName, argNames, argValues);
} public void saveAll(Collection<T> entities) {
this.getHibernateTemplate().saveOrUpdateAll(entities);
}}
解决方案 »
- 新手求助:怎么向div中传数据
- JBOSS7部署SSH出错,大家帮忙看看吧。
- 使用showModalDialog弹出的窗口的问题
- 高分寻求专家: jsp代码实现文章内容关键字链接替换
- 关于<jsp:include>问题?????????
- JSP生成静态页面小问题,问题解决一定给分!
- 你自己是怎么做的人生规划,职业规划?
- 为什么我想打开页面却变成下载提示?
- 关于头信息与详细信息的处理
- 前端$.ajax请求json报文至后台(servlet)服务器request无法得到json参数
- 求ADODB session类运用实例,就是能实现后台管理用户,过多长时间没操作session自动过期等.....
- 火狐下的ajax问题
楼主【xiaoqingao】截止到2008-07-16 09:05:44的历史汇总数据(不包括此帖):
发帖的总数量:12 发帖的总分数:220 每贴平均分数:18
回帖的总数量:38 得分贴总数量:4 回帖的得分率:10%
结贴的总数量:10 结贴的总分数:180
无满意结贴数:2 无满意结贴分:25
未结的帖子数:2 未结的总分数:40
结贴的百分比:83.33 % 结分的百分比:81.82 %
无满意结贴率:20.00 % 无满意结分率:13.89 %
楼主加油
你的 target属性没有对应的set方法,或者写错了。
那么你就要在里面有个属性
private BaseDAOImpl dao =null;
在添加set get方法!!