java接收参数VO怎么继承实体_Jpa实体VO使用继承的实体的做法@MappedSuperclass注解的使用...

标签:

在我们开发一个项目的时候,同城定义实体的时候,都会进行一些抽象,也就是面向对象的一些思想.1比如无论是数据实体还是其他类型的实体都会有id字段2.对于数据实体一般都会有创建人,创建时间,更新人,更新时间,备注等等。

这个时候我们想的肯定是将这些公共的抽象到公共的vo中去,然后具体的不同vo再继承这些公共的vo。

在JPA中因为每一个实体对应的是一个表,这时候就有可能出现虽然继承了,但是并不能扫描到那些在公共实体中的字段,这时候我们可以使用注解@MappedSuperclass,这个注解的作用就是将这个实体作为基类实体,继承它的实体被扫描的时候会自动扫描公共的这些字段。

BaseEntity:

package uap.web.persistence;

import java.io.Serializable;

import javax.persistence.Id;

import javax.persistence.MappedSuperclass;/**

*

*

* @author Hotusm

* @since 2016-03-18

* 实体支持类*/@MappedSuperclasspublic classBaseEntity implements Serializable{/**

**/

private static final long serialVersionUID = 1L;

@IdprotectedString id;publicString getId() {returnid;

}public voidsetId(String id) {this.id =id;

}

}

DataEntity:

package uap.web.persistence;

import java.io.Serializable;

import java.sql.Date;

import javax.persistence.Id;

import javax.persistence.MappedSuperclass;

import com.fasterxml.jackson.annotation.JsonFormat;/**

*

*

* @author Hotusm

* @since 2016-03-18

* 因为创建人和更新人的关联关系比较复杂,所以在其中中没有定义*/@MappedSuperclasspublic classDataEntity extends BaseEntity{/**

**/

private static final long serialVersionUID = -3203004068002303110L;

@IdprotectedString id;/**

* 创建时间*/@JsonFormatprotectedDate createDate;/**

* 更新时间*/@JsonFormatprotectedDate updateDate;/**

* 备注*/

protectedString remark;publicDate getCreateDate() {returncreateDate;

}public voidsetCreateDate(Date createDate) {this.createDate =createDate;

}publicDate getUpdateDate() {returnupdateDate;

}public voidsetUpdateDate(Date updateDate) {this.updateDate =updateDate;

}publicString getRemark() {returnremark;

}public voidsetRemark(String remark) {this.remark =remark;

}publicString getId() {returnid;

}public voidsetId(String id) {this.id =id;

}

}

然后我们在我们具体的VO中使用JPA注解就可以了,只是这些公共的字段不需要了。

标签:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值