@Transient//不生成到数据库 @Id//主建 @GeneratedValue(strategy = GenerationType.IDENTITY) //数据库自动递增 @Column(length=11)//长度 @Size(min = 3, max = 20, message = "字符串长度要求3到20之间。")//内容最小和最长的长度 @Null 检查该字段为空 @NotNull 不能为null @NotBlank 不能为空,常用于检查空字符串 @NotEmpty 不能为空,多用于检测list是否size是0 @Max 该字段的值只能小于或等于该值 @Min 该字段的值只能大于或等于该值 @Past 检查该字段的日期是在过去 @Future 检查该字段的日期是否是属于将来的日期 @Email 检查是否是一个有效的email地址 @Pattern(regex=,flag=) 被注释的元素必须符合指定的正则表达式 @Range(min=,max=,message=) 被注释的元素必须在合适的范围内 @Size(min=, max=) 检查该字段的size是否在min和max之间,可以是字符串、数组、集合、Map等 @Length(min=,max=) 检查所属的字段的长度是否在min和max之间,只能用于字符串 @AssertTrue 用于boolean字段,该字段只能为true @AssertFalse 该字段的值只能为false //关闭懒加载 @Proxy(lazy = false) 如果使用 JPA 时使用了 getOne() 方法就会报这个懒加载异常:could not initialize proxy;所以要关闭 @Proxy(lazy = false) 第二种方案,使用 jpa 的 findById() 方法替代 getOne() 方法,这样就不会报异常了 Optional<User> optional = dao.findById(1); if (optional.isPresent()){ User a= optional.get(); } #数据校验使用 @Modifying(clearAutomatically = true) 自动清除,即执行完语句后自动清除掉已经过期的实体,比如,我们删除了一个实体,但是在还没有执行flush操作时,这个实体还存在于实体管理器EntityManager中,但这个实体已经过期没有任何用处,直到flush操作时才会被删除掉。如果希望在删除该实体时立即将该实体从实体管理器中删除,则可以将该属性设置为true, @Modifying(flushAutomatically= true) 自动刷新,即执行完语句后立即将变化内容刷新到磁盘,如果是insert语句操作,则与JPA的 S saveAndFlush(S entity);方法效果相同; 更新实例 @Transactional @Modifying(clearAutomatically = true) @Query(value="UPDATE UserInfo u SET u.isDisable=?1 WHERE (u.id=?2)") public Integer userDisable(Integer isDisable,Integer Id); @Transactional @Modifying(clearAutomatically = true) @Query(value = "update ContentInfo u set u.status =:#{#contentInfo.status}, u.statusTxt =:#{#contentInfo.statusTxt} where u.id =:#{#contentInfo.id}") int check(@Param("contentInfo") ContentInfo contentInfo);
关注"都市百货" 了解南陵
微信咨询wanglf2r(不拉群 发广告者勿加)
热门评论