chenzhichao 2015-10-04 16:19 采纳率: 50%
浏览 1874
已结题

ssh整合hibernatetemplate不允许写的问题

struts2,hibernate5,spring4整合,以前没有遇到过,整整搞了一天了没找出原因,哪位大神帮帮忙:
页面Struts提示的错误信息如下:
错误信息
spring的beans.xml里是这么配置的

<bean id="sessionfactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource"></property>
        <property name="packagesToScan">
            <value>cn.itcast.oa.domain</value>
        </property>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">
                <!-- org.hibernate.dialect.OracleDialect -->
                    org.hibernate.dialect.MySQL5Dialect
                </prop>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.format_sql">true</prop>
                <prop key="hibernate.hbm2ddl.auto">update</prop>
                <prop key="cache.use_query_cache">true</prop>
                <prop key="cache.use_second_level_cache">true</prop>
                <prop key="cache.region.factory_class">org.hibernate.cache.EhCacheRegionFactory</prop>
            </props>
        </property>
    </bean>  
<bean id="txManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionfactory" />
    </bean>
    <tx:advice id="tad" transaction-manager="txManager">
        <tx:attributes>
            <tx:method name="find*" read-only="true" />
            <tx:method name="save*" propagation="REQUIRED" />
            <tx:method name="update*" propagation="REQUIRED" />
            <tx:method name="delete*" propagation="REQUIRED" />
        </tx:attributes>
    </tx:advice>
    <aop:config>
        <aop:pointcut expression="execution(* cn.itcast.oa.service.impl.*.*(..))" id="service1" />
        <aop:advisor advice-ref="tad" pointcut-ref="service1" />
    </aop:config>
    <bean name="template" class="org.springframework.orm.hibernate5.HibernateTemplate">
        <property name="sessionFactory" ref="sessionfactory">
        </property>
    </bean>

代码里的结构是HT类接受spring注入template,service基类(泛型类)继承HT并且实现DAOsupport接口(这个接口是泛型接口),service实现类继承service基类并且实现DAOsupport的子接口,具体代码如下:
HT类

public class HT {
    private HibernateTemplate ht;

    public HibernateTemplate getHt() {
        return ht;
    }
@Resource
    public void setHt(HibernateTemplate ht) {
        this.ht = ht;

    }
}

DAOsupport接口如下
```public interface DAOSupport {
public void save(T t);
}

基类代码如下:

```public class DAOsupportImpl<T> extends HT implements DAOSupport<T> {


    private Class<T> clazz;
    public DAOsupportImpl() {
        super();
        ParameterizedType pt = (ParameterizedType) this.getClass().getGenericSuperclass(); // 获取当前new的对象的
                                                                                            // 泛型的父类
                                                                                            // 类型
        clazz = (Class<T>) pt.getActualTypeArguments()[0]; // 获取第一个类型参数的真实类型
        System.out.println("clazz ---> " + clazz);
    }
    @Override
    public void save(T t) {
        System.out.println("到dao"+t.getClass());
        getHt().save(t);
    }


    public Class<T> getClazz() {
        return clazz;
    }

    public void setClazz(Class<T> clazz) {
        this.clazz = clazz;
    }
}

service实现类代码如下

public class UserServiceImpl extends DAOsupportImpl<User> implements UserService {
}

action中的方法如下
``` public String save() {
//System.out.println("到action");
ActionContext.getContext().getApplication().remove("users");
this.userService.save(getModel());//model是user的一个实例
return "list";
}









  • 写回答

5条回答

  • 大河行脚 2015-10-05 01:20
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败