
hibernate
Hibernate各种概念应用
crayon-shin-chan
这个作者很懒,什么都没留下…
展开
-
HV000045: A group has to be an interface. czy.spring.boot.starter.common.validate.group.CreateGroup
使用hibernate-validator进行对象校验时出现的错误,看字面意思很明白,分组校验的分组类必须是一个接口,不能是类原创 2020-10-09 21:13:20 · 5992 阅读 · 0 评论 -
jpa规范化元模型使用
1.简介规范化元模型由专用类组成,通常每个持久化类生成一个,其包含了与该持久化类相关联的元模型对象的静态声明。2.简单示例实体类:@Data@Entity@NoArgsConstructor@AllArgsConstructorpublic class User { @Id private Integer id; private String name; private Integer age; private Date birthd.原创 2020-08-26 13:36:23 · 782 阅读 · 0 评论 -
jpa元模型(meta model)API
1.简介持久性单元的元模型描述了持久化类型、状态、实体的关系、可嵌入对象以及托管类。通过它,我们可以在运行时查询持久化提供程序,以找出在持久化单元中类的信息。持久化提供程序存储了各式各样的信息,从名称、类型到关系,并且可通过元模型API对他们进行访问。2.实体类型EntityManager#getMetamodel()方法可以获取元模型 Metamodel#getEntities()方法可以获取实体类集合,可以获取实体类的各种属性Metamodel metamodel = t.原创 2020-08-26 11:27:51 · 1071 阅读 · 0 评论 -
jpa使用条件API(Criteria API)进行查询
1.简介JPA2.0引入了一个全新的构建查询的条件API,它标准化了存在于专用持久化产品中的许多编程功能不仅仅是从JPQL到编程接口的字面量转换,而且它还采用了专用模型的编程最佳实践,如方法链(method chaining)下面是一个简单的示例:CriteriaBuilder builder = this.manager.getCriteriaBuilder();CriteriaQuery<User> query = builder.createQuery(User..原创 2020-08-26 01:44:08 · 1481 阅读 · 0 评论 -
jpa使用JPQL查询语言进行查询、聚合、更新、删除
1.简介Java持久化查询语言(Java Persistence Query Language,JPQL),这是一种数据库独立的查询语言,其用以操作逻辑上的实体模型而非物理的数据模型。2.查询2.1 列表查询2.1.1 简单列表查询SELECT u FROM User u可以直接在from后使用实体名称来引用实体,代表查询实体列表 实体后为其别名,在select后使用别名代表查询此实体的列表Query query = this.manager.create...原创 2020-08-23 18:56:51 · 712 阅读 · 0 评论 -
jpa脏数据更新
1.简介当实体管理器加载了托管实体后,如果在事务范围内,修改了实体属性,则提交事务时会与数据库进行对比,将更新刷入数据库2.创建时修改@Slf4jpublic class UpdateTest extends JpaTest { @Before public void init(){ this.createManager(); this.manager.getTransaction().begin(); } @Test.原创 2020-08-21 11:51:07 · 298 阅读 · 0 评论 -
jpa persist方法详解
1.简介使实例托管和持久化。 如果实体已经存在,抛出EntityExistsException或者PersistenceException 如果实例不是实体,则抛出IllegalArgumentException 如果在类型为PersistenceContextType.TRANSACTION 的容器管理的实体管理器上调用时没有事务,则抛出TransactionRequiredException按照说法,这个方法没有更新功能,这个方法不是detach的反向操作2.插入插入是其最主要.原创 2020-08-21 09:12:08 · 2279 阅读 · 0 评论 -
hibernate-validator自定义注解
hibernate-validator是属于hibernate的验证器模块,可以使用注解在POJO的字段上进行验证标注如果需要自定义验证需要以下两步:1.定义验证器/** * 手机号码验证器 */public class PhoneValidator implements ConstraintValidator<Phone,String> { @Overr...原创 2020-05-04 21:46:48 · 835 阅读 · 0 评论 -
hibernate启用Envers审计功能
Hibernate的Envers是准用于在数据库中国审计日志和保持数据多版本的Hibernate套件项目启用Envers后,当在应用程序的主表中添加、修改和删除数据时,就会在单独的数据库表中自动存储数据的副本Envers会侦听Hibernate事件,并且当Hibernate在数据库中存储变更时,Envers会在其专用的表中创建数据的副本和记录一个版本Envers会将工作单元中(即事务中...原创 2020-02-23 23:11:46 · 861 阅读 · 0 评论 -
hibernate自动生成表结构
Hibernate提供了自动生成表结构的功能,只需要配置hibernate.hbm2ddl.auto这个参数即可启用此功能,这里测试了一下,各种不同配置下的效果:首先给个错误配置,发现:WARN: Unrecognized hibernate.hbm2ddl.auto value: 'aaa'. Supported values include 'create', 'cr...原创 2020-02-15 18:45:15 · 899 阅读 · 0 评论