gpt4 book ai didi

java - jqGrid 无法使用 @Transactional 加载

转载 作者:行者123 更新时间:2023-11-30 04:08:56 25 4
gpt4 key购买 nike

当我在cap业务方法中添加注释@Transactional时,jqGrid不加载数据。但是少一点注释就可以了,为什么?

@Service
@Scope("request")
public class MarcacionServiceImp implements MarcacionService{

@Autowired
MarcacionMapper mapper;

@Transactional
public List<Marcacion> lista() throws Exception {
List<Marcacion> lista = mapper.listado();
return lista;
}

}

<action name="cargarMarcacion" class="cargaMarcacionAction">
<result type="json" />
</action>


<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="/WEB-INF/mybatis-config.xml" />
</bean>

<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource"
p:driverClassName="com.mysql.jdbc.Driver" p:url="jdbc:mysql://localhost/asistencia"
p:username="root" p:password="root" />

<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager"
p:dataSource-ref="dataSource" />

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="mapper" />
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
</bean>

<bean id="usuarioAction" class="action.UsuarioAction" >
<property name="service" ref="usuarioService" />
</bean>
<bean id="usuarioService" class="negocio.UsuarioServiceImp" />

<bean id="cargaMarcacionAction" class="action.CargaMarcacionAction">
<property name="service" ref="marcacionService" />
</bean>
<bean id="marcacionService" class="negocio.MarcacionServiceImp" />

在我的页面中无法获取 JSON 数据。我正在使用 Struts2-Spring 和 MyBatis-Spring。我的意思是问题是 @Transactional 不返回我的 JSON 数据。

最佳答案

当 struts2 默认返回 "json" 结果时,它被配置为序列化操作实例本身。但我认为 jqGrid 不需要它,它只需要相关数据。您可以使用 "json" 结果的参数来缩小序列化所需的属性范围。首先,您应该通过重命名返回序列化数据的方法来定义属性 getter。

@Transactional  
public List<Marcacion> getLista() throws Exception {
List<Marcacion> lista = mapper.listado();
return lista;
}

其次,将“root”参数添加到结果

<result type="json">
<param name="root">lista</param>
</result>

@Transactional 与 JSON 数据序列化无关,但如果您从数据库检索数据,则需要它。

关于java - jqGrid 无法使用 @Transactional 加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20103480/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com