首页
在线工具
搜索
1
使用Metrics指标度量工具监控Java应用程序性能(Gauges, Counters, Histograms, Meters和 Timers实例)
2
如何将Virtualbox和VMware虚拟机相互转换
3
Jumpserver的MFA配置
4
Kuboard与KubeSphere的区别:Kubernetes管理平台对比
5
Markdown正确使用姿势
杂谈与随笔
工具与效率
源码阅读
技术管理
运维
数据库
前端开发
后端开发
Search
标签搜索
Angular
Docker
Phabricator
SpringBoot
Java
Chrome
SpringSecurity
SpringCloud
DDD
Git
Mac
K8S
Kubernetes
ESLint
SSH
高并发
Eclipse
Javascript
Vim
Centos
Jonathan
累计撰写
86
篇文章
累计收到
0
条评论
首页
栏目
杂谈与随笔
工具与效率
源码阅读
技术管理
运维
数据库
前端开发
后端开发
页面
搜索到
1
篇与
的结果
2017-05-11
pring Data学习笔记
1、FetchType.LAZY:懒加载,加载一个实体时,定义懒加载的属性不会马上从数据库中加载。 2、FetchType.EAGER:急加载,加载一个实体时,定义急加载的属性会立即从数据库中加载。 3、比方User类有两个属性,name跟address,就像百度知道,登录后用户名是需要显示出来的,此属性用到的几率极大,要马上到数据库查,用急加载;而用户地址大多数情况下不需要显示出来,只有在查看用户资料是才需要显示,需要用了才查数据库,用懒加载就好了。所以,并不是一登录就把用户的所有资料都加载到对象中,于是有了这两种加载模式。 5.3.9. Applying query hints 它需要一个JPA @QueryHint注释数组和一个布尔标志来潜在地禁用应用于在应用分页时触发的附加计数查询的提示 public interface PersonRepository extends Repository<User, Long> { List<Person> findByEmailAddressAndLastname(EmailAddress emailAddress, String lastname); // Enables the distinct flag for the query List<Person> findDistinctPeopleByLastnameOrFirstname(String lastname, String firstname); List<Person> findPeopleDistinctByLastnameOrFirstname(String lastname, String firstname); // 为单个属性忽略所有的大小写 List<Person> findByLastnameIgnoreCase(String lastname); // 为所有的属性忽略大小写 List<Person> findByLastnameAndFirstnameAllIgnoreCase(String lastname, String firstname); // Enabling static ORDER BY for a query List<Person> findByLastnameOrderByFirstnameAsc(String lastname); List<Person> findByLastnameOrderByFirstnameDesc(String lastname); } Spring数据库抽象中的中央界面是Repository(可能不是什么惊喜)。管理域类以及域类的id类型作为类型参数 在CrudRepository之上,有一个PagingAndSortingRepository抽象,可以添加其他方法来简化对实体的分页访问 Example 4. PagingAndSortingRepository public interface PagingAndSortingRepository<T, ID extends Serializable> extends CrudRepository<T, ID> { Iterable<T> findAll(Sort sort); Page<T> findAll(Pageable pageable); } Accessing the second page of User by a page size of 20 you could simply do something like this: PagingAndSortingRepository<User, Long> repository = // … get access to a bean Page<User> users = repository.findAll(new PageRequest(1, 20)); In addition to query methods, query derivation for both count and delete queries, is available. Spring Data JPA 1.11新特性 Projections: 实体可以一次性定义多个属性: Private String firstName, lastName; 如果想隐藏某个字段不查:定义 interface NoAddresses { String getFirstName(); String getLastName(); } 使用 interface PersonRepository extends CrudRepository<Person, Long> { NoAddresses findByFirstName(String firstName); } 重命名某个属性 interface FullNameAndCountry { @Value("#{target.firstName} #{target.lastName}") //指定属性来源 String getFullName(); @Value("#{target.address.country}") String getCountry(); } interface RenamedProperty { String getFirstName(); @Value("#{target.lastName}")//指定属性来源 String getName(); }
2017年05月11日