文档章节

JPA使用bug备忘录

 惊浪
发布于 2017/03/17 11:15
字数 388
阅读 9
收藏 0

1. Date

@Entity
@Table(name = "abc")
public class Abc{
    //ID
    @Id
    @Column(name = "abc_id")
    private String abcId;
    //内容(文本)
    @Column(name = "abc_text",length = 21700)
    private String abcText;
    //创建人
    @Column(name = "user_id")
    private long userId;
    //创建时间
    @Column(name = "create_time")
    private Date createTime;}

1)Date类型 在转化成mysql的DateTime时会丢失时间.

2)Date在转mysql的 timeStamp类型时5.3.0版本会存在Bug, 一直到5.3.5才修复

3)mysql默认设置 CURRENT_TIMESTAMP,在没有值时会使用数据库时间;

CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

在修改记录时 时间自动更新。

2. mysql varchar2、text在存中文时的字符长度含义有区别

3、实体定义Quality参数校验
@Data
@Document(collection = "Quality")
public class Quality{
    private String id;
    @Size(min = 1, max = 100)
    @NotNull
    private String userId;
    private Date createTime;
    @Min(value = 0)
    private Integer score;    
}

4、Repository定义
@Repository(value = "qualityRepository")
public interface QualityRepository extends MongoRepository<Quality, String> {
    List<Quality> findByIdIn(List<String> ids);
    List<Quality> findByScoreGreaterThan(int score);
    Quality findTopByOrderByScoreDesc();
    Page<Quality> findByUserId(String userId, Pageable page);

List<Quality> findByCreateTimeBetween(Date startTime, Date endTime);  //日期参数运行环境java8,其它版本没有用过

}

5、排序查询示例
 Sort sort = new Sort(Sort.Direction.DESC,"createTime"); //创建时间降序排序
 Pageable pageable = new PageRequest(pageNumber,pageSize,sort);
 this.qualityRepository.findByUserId(userId,pageable);
 
6、其它,关联查询
1.新建个类 ABResult ,类全名 com.abc.ABResult ,写好构造方法 public ABResult(String aName, String aCd, String bName)
2.JPQL:"SELECT new com.abd.xxResult(a.name, a.cd, b.name) FROM TableA a LEFT JOIN FETCH a.b"
3.你的 T 就是 ABResult
这种 new 的写法我们一直在用,不知道合不合你的需求。

参考文档 https://www.jianshu.com/p/0ad1c060c46b findby

 

© 著作权归作者所有

粉丝 15
博文 32
码字总数 19096
作品 0
福州
程序员
私信 提问
Apache Qpid JMS AMQP 0-x 6.3.1 发布

Apache Qpid JMS AMQP 0-x 6.3.1 已发布。Qpid JMS AMQP 0-x 是兼容 JMS 1.1 的客户端,等同于 AMQP 0-8,0-9,0-9-1 和 0-10。Qpid JMS 是一个使用 Qpid Proton 协议引擎的 Java Message Ser......

淡漠悠然
2018/05/21
442
0
让Servlet支持REST风格的url

前言 Servlet自从上了3.0版本之后,用起来已经是相当舒服了。注解的加入,让你基本可以抛弃web.xml,零配置写web。 不过,用了之后,还是有些遗憾。就是REST风格URL的支持。很久之前用过Spr...

英强
2015/06/16
2.4K
1
(JavaEE-07)JSP.md

JSP JSP全称是Java Server Pages,它和Servlet技术一样,都是SUN公司定义的一种用于开发动态Web资源的技术。JSP的编写就像编写HTML一样简单,但是与HTML不同的是,在JSP中,可以编写Java代码...

_-Leon-_
2014/07/04
110
0
[转]通俗易懂Tomcat中Servlet的生命周期,讲的非常详细

我在上一篇文章里详细的介绍了 HTTP协议工作的流程,其中最重要的就是如何理解HTTP请求头和HTTP响应头,现在在这里再来详细的说明Tomcat 容器(即Servlet 容器)到底是如何 管理Servlet的,S...

晨曦之光
2012/04/11
1K
0
StandardWrapper分析-tomcat6.x源码阅读

2013-10-20 StandardWrapper是什么StandardWrapper是负责对Servlet的封装,在tomcat的结构层次中属于最内层,跟Servlet最接近的组件,是装载Servlet的容器,StandardWrapper没有子容器,因为...

douglaswei
2013/11/19
89
0

没有更多内容

加载失败,请刷新页面

加载更多

3_数组

3_数组

行者终成事
今天
7
0
经典系统设计面试题解析:如何设计TinyURL(二)

原文链接:https://www.educative.io/courses/grokking-the-system-design-interview/m2ygV4E81AR 编者注:本文以一道经典的系统设计面试题:《如何设计TinyURL》的参考答案和解析为例,帮助...

APEMESH
今天
7
0
使用logstash同步MySQL数据到ES

概述   在生成业务常有将MySQL数据同步到ES的需求,如果需要很高的定制化,往往需要开发同步程序用于处理数据。但没有特殊业务需求,官方提供的logstash就很有优势了。   在使用logstas...

zxiaofan666
今天
10
0
X-MSG-IM-分布式信令跟踪能力

经过一周多的鏖战, X-MSG-IM的分布式信令跟踪能力已基本具备, 特点是: 实时. 只有要RX/TX就会实时产生信令跟踪事件, 先入kafka, 再入influxdb待查. 同时提供实时sub/pub接口. 完备. 可以完整...

dev5
今天
7
0
OpenJDK之CyclicBarrier

OpenJDK8,本人看的是openJDK。以前就看过,只是经常忘记,所以记录下 图1 CyclicBarrier是Doug Lea在JDK1.5中引入的,作用就不详细描述了,主要有如下俩个方法使用: await()方法,如果当前线...

克虏伯
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部