hibernate:
@Entity映射实体类,表示该类可以通过注解进行操作
@Table(name="t_code")映射数据库表
@Id 表示定义主键
@GeneratedValue定义主键生成策略
- strategy 指定生成的策略(JPA定义的),这是一个GenerationType。默认是GenerationType. AUTO
- GenerationType.AUTO 主键由程序控制
- GenerationType.TABLE 使用一个特定的数据库表格来保存主键
- GenerationType.IDENTITY 主键由数据库自动生成(主要是自动增长类型)
- GenerationType.SEQUENCE 根据底层数据库的序列来生成主键,条件是数据库支持序列。(这个值要与generator一起使用)
- generator 指定生成主键使用的生成器(可能是orcale中的序列)。
@OneToOne(mappedBy="manbean",cascade=CascadeType.ALL)设置一对一关联
cascade属性有五个值,CascadeType.PERSIST(级联新建),CascadeType.REMOVE(级联删除),CascadeType.REFRESH(级联刷新), CascadeType.MERGE(级联更新),CascadeType.ALL(全部四项)
@ManyToOne 多对一的映射,该注解标注的属性通常是数据库表的外键
- optional:是否允许该字段为null,该属性应该根据数据库表的外键约束来确定,默认为true
- fetch:表示抓取策略,默认为FetchType.EAGER
- cascade:表示默认的级联操作策略,可以指定为ALL,PERSIST,MERGE,REFRESH和REMOVE中的若干组合,默认为无级联操作
- targetEntity:表示该属性关联的实体类型.该属性通常不必指定,ORM框架根据属性类型自动判断targetEntity.
@JoinColumn 关联字段,name:该字段的名称.
@OneToMany一对多的关联,该属性应该为集合类型,在数据库中并没有实际字段.
- fetch:表示抓取策略,默认为FetchType.LAZY
- cascade:表示级联操作策略,对于OneToMany类型的关联非常重要,通常该实体更新或删除时,其关联的实体也应当被更新或删除
@ManyToMany多对多的关联
- targetEntity:表示多对多关联的另一个实体类的全名,例如:package.Book.class
- mappedBy:表示多对多关联的另一个实体类的对应集合属性名称
- 两个实体间相互关联的属性必须标记为@ManyToMany,并相互指定targetEntity属性,
- 有且只有一个实体的@ManyToMany注解需要指定mappedBy属性,指向targetEntity的集合属性名称
@MappedSuperclass 可以将超类的JPA注解传递给子类,使子类能够继承超类的JPA注解
@Column(name="userName")定义该属性对应的列名,如与数据库列名相同可省略,有如下的属性
- name 可选,列名(默认值是属性名)
- unique 可选,是否在该列上设置唯一约束(默认值false)
- nullable 可选,是否设置该列的值可以为空(默认值false)
- insertable 可选,该列是否作为生成的insert语句中的一个列(默认值true)
- updatable 可选,该列是否作为生成的update语句中的一个列(默认值true)
- columnDefinition 可选,为这个特定列覆盖sql ddl片段(这可能导致无法在不同数据库间移植)
- table 可选,定义对应的表(默认为主表)
- length 可选,列长度(默认值255)
- precision 可选,列十进制精度(decimal precision)(默认值0)
- scale 可选,如果列十进制数值范围(decimal scale)可用,在此设置(默认值0)
@SequenceGenerator 声明一个数据库序列,有如下属性
- name 表示该表主键生成策略名称,它被引用在@GeneratedValue中设置的“gernerator”值中
- sequenceName 表示生成策略用到的数据库序列名称。
- initialValue 表示主键初始值,默认为0.
- allocationSize 每次主键值增加的大小,例如设置成1,则表示每次创建新记录后自动加1,默认为50.
@Transient表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性.
Spring:
@Resource 默认按名称装配,当找不到与名称匹配的bean才会按类型装配。
@Configuration把一个类作为一个IoC容器,它的某个方法头上如果注册了@Bean,就会作为这个Spring容器中的Bean。
@Scope注解 作用域
@Lazy(true) 表示延迟初始化
@Service用于标注业务层组件、
@Controller用于标注控制层组件(如struts中的action)
@Repository用于标注数据访问组件,即DAO组件。
@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
@Scope用于指定scope作用域的(用在类上)
@PostConstruct用于指定初始化方法(用在方法上)
@PreDestory用于指定销毁方法(用在方法上)
@DependsOn:定义Bean初始化及销毁时的顺序
@Primary:自动装配时当出现多个Bean候选者时,被注解为@Primary的Bean将作为首选者,否则将抛出异常
@Autowired 默认按类型装配,如果我们想使用按名称装配,可以结合@Qualifier注解一起使用。如下:
@Autowired @Qualifier("personDaoBean") 存在多个实例配合使用
@Resource默认按名称装配,当找不到与名称匹配的bean才会按类型装配。
@PostConstruct 初始化注解
@PreDestroy 摧毁注解 默认 单例 启动就加载
@Async异步方法调用,
springMVC:
@Controller 负责注册一个bean 到spring 上下文中
@RequestMapping用来定义访问的URL,你可以为整个类定义一个,或者为每个方法指定一个
@PathVariable用于方法中的参数,表示方法参数绑定到地址URL的模板
@ModelAttribute 应用于方法参数,参数可以在页面直接获取,相当于request.setAttribute(,)
@ResponseBody可直接放在方法上,表返回类型将会直接作为HTTP响应字节流输出(不被放置在Model,也不被拦截为视图页面名称)。可以用于ajax
注解
最新推荐文章于 2023-03-16 21:55:26 发布