1、spring-data-jpa 通过解析方法名创建查询
框架在进行方法名解析的时候,会先将方法名多余的部分去掉,例如:find、findBy、read、readBy、get、getBy,如果方法最后的一个参数是 sort 或 Pageable 也会提取相关的类型按规则进行排序或分页操作
例如:findByName(),解析的时候会将 findBy 去掉,然后剩下的部分会先从右边往左边进行截取,截取的规则是从第一大写字母开头,这里截取的就是 Name 属性
详细可参考(转):http://www.ibm.com/developerworks/cn/opensource/os-cn-spring-jpa/index.html
2、javax.persistence.EntityManager persist(object) 与 merge(object) 区别
persist:
插入一个新的对象到数据库;
将对象附加到实体管理器(Attach the object to the entity manager)。
meger:
找到附加到实体管理器上有着相同 id 和 name 的实体并更新它;
如果已经更新并且返回已经附加的对象;
如果不存在就插入一个新的对象到数据库。
persist 比 merge 更有效率,它不操作原来的对象;