@Transient private String strOrderAmt;//可以通过hessian传输,且不参与hibernate操作 transient private String strOrderAmt2;//不可以通过hessian传输,也不参与hibernate操作
另外,hessian传输对象时有一个奇怪问题,
当一个Vo对象在hessian方法调用时,被放到不同的方法形参里,则hessian会报错,这时只能用transient关键字对某个实参里的Vo对象取消序列化才可以
如下:
public class BasBatchPayOrderTask implements Serializable { @Transient private List<BasBatchPayOrderDtl> orderList; } //hessian不能传输,会报错, service.saveBatchFlow(task, task.getOrderList()); //或者第二个形参置为null,hessian能传输 service.saveBatchFlow(task, null);
或者
//或者把@Transient改成transient public class BasBatchPayOrderTask implements Serializable { transient private List<BasBatchPayOrderDtl> orderList; } //hessian能传输 service.saveBatchFlow(task, task.getOrderList());
另外,在做子订单大于49999.99拆单时,发现拆单金额(BigDecimal类型)如果被多个子订单引用,则hessian不能传输,会抛异常
private BigDecimal singleMaxAmount = new BigDecimal("49999.99"); // 未切割金额大于singleMaxAmount if (unsplitAmt.compareTo(singleMaxAmount)>0) { extOrderVo.setOrderAmt(singleMaxAmount);//不能传输,因为singleMaxAmount被多次引用 extOrderVo.setOrderAmt(new BigDecimal(singleMaxAmount.toString()));//正确写法,新new一个对象 } else {// 未切割金额小于等于singleMaxAmount extOrderVo.setOrderAmt(unsplitAmt); }
最后,hessian传输总结如下:
hessian传输数据(范围包括方法上的全部形参)里的任何class对象(包括BigDecimal)只能存在一个引用,如果有两个以上引用则不能传输,会报异常
相关推荐
JPA的基本注解主要包括@Entity、@Table、@Id、@GeneratedValue、@Basic、@Column、@Transient、@Temporal和@TableGenerator等。
java关键字transient
Java中的transient关键字
JAVA中transient关键字的讲解
transient是Java语言的关键字,用来表示一个域不是该对象串行化的一部分。当一个对象被串行化的时候,
关于Java中关键字transient和串行化的简略介绍
本文章向大家介绍Java transient关键字的使用方法和实例,包括的知识点有transient的作用、transient使用小结、transient使用细节,需要的朋友可以参考一下
主要介绍了java中transient关键字用法,以实例形式分析了java中transient关键字的功能及使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
写一段代码理清序列化、反序列化的流程。本篇文章序列化、反序列化用的类是同一个类,可以通过注释main中1然后修改Stu类实现有无transient关键字修饰、...import java.io.*; public class SerializableDemo {
哎,虽然自己熟的是Java,但很多Java基础知识都不知道,比如transient关键字以前都没用到过,所以不知道它的作用是什么,做笔试题时发现有一题是关于这个的,于是花个时间整理下transient关键字的使用,涨下姿势~~~...
主要介绍了Java transient关键字原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
主要介绍了Java transient关键字与序列化操作,结合实例形式详细分析了java序列化操作相关实现方法与操作注意事项,需要的朋友可以参考下
主要和大家说一说java关键字final和transient,感兴趣的小伙伴们可以参考一下
Transient Voltage Suppressors (TVS’s) are devices used to protect vulnerable circuits from electrical overstress such as that caused by electrostatic discharge, inductive load switching and induced ...
transient stability matlab
在Hibernate中使用注解,主要是为了替代映射文件,完成“类到表,属性到字段”的映射。 JPA提供了一套功能强大的注解。Hibernate直接使用了JPA的这套注解。当然,对于JPA中的一些不足,Hibernate又开发了一些自己的...
JPA注解1.1 @Entity1.2 @Table1.3 @Id1.4 @GeneratedValue1.5 @Basic1.6 @Column1.7 @Transient1.8 @Temporal1.9 @TableGenerator 1. JPA注解 1.1 @Entity 标注在实体类上,表示此类对应一个数据表。 1.2 @Table 与...
EMTDC Transient Analysis for PSCAD Power System Simulation.
hibernate 注解所需的jar包 ejb3-persistence.jar hibernate-annotations.jar hibernate-commons-annotations.jar