当前位置: 代码迷 >> Java Web开发 >> ssh框架启动tomcat提示异常
  详细解决方案

ssh框架启动tomcat提示异常

热度:108   发布时间:2016-04-17 12:15:42.0
ssh框架启动tomcat提示错误
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代码如下:
Java code
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);    }}
  相关解决方案