常见注解总结:

常见注解总结:

  首先我们都知道Hibernate框架是持久层的一个框架,用于对数据的访问和操作。个人觉得其强大就在于它可以使用HQL语句来进行快速的增、删、改的操作,也可以使用Sql语句来进行数据操作,很是方便快捷,备受大型项目青睐,之前所做的都是用的MyBatis感觉比MyBatis要方便些。但是有些人会认为说开发人员理应熟练使用sql语句,对MyBatis更欢迎。智者见智仁者见仁。我就从我平时使用的注解说起吧:

  1. @id:这个想必大家都不会陌生的,在实体类中定以主键的标识。
  2. @Entity:实体类的标识,表示实体类和数据库的联系。
  3. @Table:这个就是指代数据库表名的标识
  4. @Column:这个标识是用于指代数据库中的列名,标注于实体类中的属性之上,与数据库的字段名对应起来。
  5. @Transient:这个标识之前没怎么注意,现在是经常会遇见,这个标识是说,在实体类中会出现,但是在数据库中没有相对应列名来与之对应,只是用来取一个数据而已。
  6. @Component:标记了一组组件,而有时也用@Service、@Repository、@Controller在目前的Spring框架中这三个注解的功能是一样的,要细分的话,从命名我们也可以知道他们三者的区别。@Service用于服务层、@Repository用于持久层、@Controller用于控制器。
  7. @Autowrired:加上这个注解后就不用再get/set方法一次了,Spring会自动注入的。
  8. @Transactional:打了这个注解的类和方法表示该类的所有方法或者该方法的事务由Spring处理,来保证事务的原子性,在操作时一起成功一起回滚。避免数据库数据出现不统一的问题。
  9. @ResponseBody:表示该方法的返回结果直接写入HttpResponseBody中,一段在异步获取数据时使用,在使用@RequestMapping后,返回结果,不会被解析为跳转路径,而是直接写入HttpResponseBody中,比如异步获取JSON数据,@ResponseBody后,直接返回JSON数据。
  10. @DynamicInsert和@DynamicUpdate,如果是在配置文件中的话,就是dynamic-insert和dynamic-update,这两个注解在一定程度上可以增加与数据库操作相关的速度,可以节省Sql语句的执行时间,提高程序的运行效率,使用这两个注解只需要在实体类上加入即可,或者在*.hbm.xml配置。这两个注解是Boolean值,true或者false。用这两个注解之所以它的效率高,是因为它只会对要操作的字段进行修改,不会对其他不修改的字段进行修改。
  11. @JoinColumn:这个注解与@Column标记一样,是用于注释表中的字段的,相同之处就不一一赘述了,说说与他的不同的地方。@JoinColumn注释是保存表与表之间的关系的字段,他需要标注在实体属性上,而@Column标注的是表中不包含表关系的字段。
  12. @NotFound:使用Hibernate注解配置实体的关联关系,在many-to-one,one-to-many关联中,一边引用自另一边的属性,如果是属性值为某某的数据在数据库中不存在了,Hibernate会抛出异常,加上这个注解就可以了。@NotFound(action=NotFoundAction.IGNORE),意思是找不到引用的外键数据时忽略,NotFound默认是Exception
  13. @JSONIgnoreProperties:在此标记不生成JSON对象的属性。因为jsonplugin用的是java内审机制,Hibernate会被管理的pojo加入一个hibernateLazyIntializer属性,jsonplugin会把hibernateLazyIntializer也拿来操作,并读取里面的不能被反射操作的属性就产生了这个异常。所以就用这个注解,就是标注那个属性不用转化为json的。
  14. @jsonignore:此注解用在属性或者方法上最好是属性上,作用和上面的@jsonIgnorePropertise一样。
  15. @JsonFromat:也是用在属性或者方法上的,最好是在属性上,可以方便的把Date的类型直接转换为我们想要的格式,比如:@JsonFormat(pattern = 'yyyy-MM-dd HH-mm-ss')

  

原文地址:https://www.cnblogs.com/tyhJava/p/5782010.html