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 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多
  • ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件
  • ¥15 有赏,i卡绘世画不出