不看文档,没有足够的阅读资料是用不好JPA的
- 日期字段映射问题
使用Spring Data JPA的时候,突然不知道java的Date类型如何与数据库中的Date类型映射
- Hibernate中日期类型字段的映射策略(http://blog.csdn.net/lmy86263/article/details/51784865)
Hibernate sum函数 返回Long
数据库中的字段类型为int,但是数据库用sum函数的时候,Hibernate给我返回了Long类型。使用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
- 默认情况下,hibernate会将驼峰写法转化成下划线格式的,
如果数据库不是下划线模式的列名,则加了@Colum也无法映射
解决方法:
1.配置转换策略:
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
2.@Colum 中的字段名全小写或大写