BaseEntity实体类entity/bean/domain映射数据库

通过注解的方式对实体类和数据库进行绑定

实体类和mysql映射

java 复制代码
@Entity
@Table(name = "t_hoxin_session") //对应数据库表
public class Session{

    public static final int STATE_ACTIVE = 0;
    public static final int STATE_APNS = 1;
    public static final int STATE_INACTIVE = 2;

    public static final String CHANNEL_IOS = "ios";
    public static final String CHANNEL_ANDROID = "android";
    public static final String CHANNEL_WINDOWS = "windows";
    public static final String CHANNEL_MAC = "mac";
    public static final String CHANNEL_WEB = "web";

    /**
     * 数据库主键ID
     */
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)//主键生成策略
    @Column(name = "id")
    private Long id;

    /**
     * session绑定的用户账号
     */
    @Column(name = "uid")
    private String uid;

    /**
     * session在本台服务器上的ID
     */
    @Column(name = "nid",length = 32,nullable = false)
    private String nid;

    /**
     * 客户端ID (设备号码+应用包名),ios为deviceToken
     */

    @Column(name = "device_id",length = 64,nullable = false)
    private String deviceId;

    /**
     * 终端设备型号
     */
    @Column(name = "device_name")
    private String deviceName;

    /**
     * session绑定的服务器IP
     */
    @Column(name = "host",length = 15,nullable = false)
    private String host;

    /**
     * 终端设备类型
     */
    @Column(name = "channel",length = 10,nullable = false)
    private String channel;

    /**
     * 终端应用版本
     */
    @Column(name = "app_version")
    private String appVersion;

    /**
     * 终端系统版本
     */
    @Column(name = "os_version")
    private String osVersion;

    /**
     * 终端语言
     */
    @Column(name = "language")
    private String language;

    /**
     * 登录时间
     */
    @Column(name = "bind_time")
    private Long bindTime;

    /**
     * 经度
     */
    @Column(name = "longitude")
    private Double longitude;

    /**
     * 维度
     */
    @Column(name = "latitude")
    private Double latitude;

    /**
     * 位置
     */
    @Column(name = "location")
    private String location;

    /**
     * 状态
     */
    private int state;
	
	/**
		get/set省略
	*/
}

实体类和mongoDB数据库映射

java 复制代码
@Document(collection = "accounts")
@JsonIgnoreProperties(ignoreUnknown = true) //忽略类中不存在的字段。
public class Account{
	@Id
	private String name;

	private Date lastSeen;

	@Valid
	private List<Intem> icomes;

	@Valid
	private List<Intem> expenses;

	@Valid
	@NotNull
	private Saving saving;

	@Length(min = 0,max = 20_000)
	private String note;

	/**
		get/set省略
	*/
}
java 复制代码
public class Item{
	
	@NotNull
	@Length(min = 1,max = 20)
	private String title;

	@NotNull
	private BigDecimal amout;

	/**
		忽略set/get
	*/
}

=============================================

@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")格式

java 复制代码
@EqualsAndHashCode(callSuper = true)
@Data
public class ActivityResponse extends BasicResponse {
    private static final long serialVersionUID = 8446988225819243294L;

    private Long id;
    /**
     * 活动名称
     */
    private String activityName;
    /**
     * 活动主图
     */
    private String activityImg;
    /**
     * 活动类型
     */
    private Integer activityType;
    /**
     * 活动状态
     */
    private Boolean state;

    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private LocalDateTime beginTime;

    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private LocalDateTime endTime;
}

========================================

java 复制代码
@Data
public class BaseEntity<T> implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 租户id
     */
    private Long parkId;

    /**
     * 创建者
     */
    private String createBy;

    /**
     * 创建时间
     * jackson-annotations-2.11.3.jar
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**
     * 更新者
     */
    private String updateBy;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /**
     * 搜索值
     * persistence-api-1.0.jar
     */
    @Transient
    private String searchValue;

    /**
     * 开始日期
     */
    @Transient
    private String beginTime;

    /**
     * 结束日期
     */
    @Transient
    private String endTime;

    /**
     * 请求参数
     */
    @Transient
    private Map<String, Object> params;

    public Map<String, Object> getParams() {
        if (params == null) {
            params = new HashMap<>();
        }
        return params;
    }

}
相关推荐
21号 130 分钟前
9.Redis 集群(重在理解)
数据库·redis·算法
爬山算法31 分钟前
Redis(73)如何处理Redis分布式锁的死锁问题?
数据库·redis·分布式
嘗_32 分钟前
sql特训
数据库·sql
wan5555cn2 小时前
周末之美:慢下来,拥抱生活的温柔
数据库
yumgpkpm2 小时前
华为鲲鹏 Aarch64 环境下多 Oracle 、mysql数据库汇聚到Cloudera CDP7.3操作指南
大数据·数据库·mysql·华为·oracle·kafka·cloudera
1024小神2 小时前
为已有nextjs项目添加supabase数据库,不再需要冗余后端
数据库
best_virtuoso3 小时前
PostgreSQL PostGIS安装与配置,现有数据库启用PostGIS扩展
数据库·postgresql
橙汁味的风3 小时前
3关系型数据库的SQL语言
数据库·sql
学编程的董3 小时前
07 计算字段的创建与使用 - 数据转换的艺术
数据库·oracle
程序员云帆哥3 小时前
MySQL JDBC Driver URL参数配置规范
数据库·mysql·jdbc