Spring Data JPA问题

不看文档,没有足够的阅读资料是用不好JPA的

  1. 日期字段映射问题
    使用Spring Data JPA的时候,突然不知道java的Date类型如何与数据库中的Date类型映射
  • Hibernate中日期类型字段的映射策略(http://blog.csdn.net/lmy86263/article/details/51784865)
  1. Hibernate sum函数 返回Long
    数据库中的字段类型为int,但是数据库用sum函数的时候,Hibernate给我返回了Long类型。

  2. 使用Spring Data JPA 如何返回一个自定义的对象
    How to return a custom object from a Spring Data JPA GROUP BY query
    (https://stackoverflow.com/questions/36328063/how-to-return-a-custom-object-from-a-spring-data-jpa-group-by-query)

JPA官方文档:

  • JPQL构造函数表达式
    在SELECT子句中可以在SELECT列表中使用构造函数来返回一个或多个Java实例。指定的类不需要是实体(entity)或映射到数据库的类。构造函数名称必须是完全限定的。
    如果在SELECT NEW子句中指定了实体类名称,则生成的实体实例处于新状态。
    SELECT NEW com.company.PublisherInfo(pub.id,pub.revenue,mag.price)
    FROM Publisher pub JOIN pub.magazines mag WHERE mag.price> 5.00
  1. 默认情况下,hibernate会将驼峰写法转化成下划线格式的,
    如果数据库不是下划线模式的列名,则加了@Colum也无法映射

解决方法:
1.配置转换策略:
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
2.@Colum 中的字段名全小写或大写

你可能感兴趣的:(Spring Data JPA问题)