- 浏览: 140395 次
- 性别:
- 来自: 天津
文章分类
最新评论
-
liuxiang00435057:
不知道,你有这个的实现不,能发给我参考下吗,liuxiang0 ...
RBAC模型的通用权限管理系统的设计(数据模型)的扩展 -
步青龙:
这个批量上传确定可以用吗?我这怎么不行呢,官方的Demo也不行 ...
KindEditor 4.1 发布,开源HTML编辑器
@Entity,注册在类头上,将一个类声明为一个实体bean(即一个持久化POJO类) 。
@Table,注册在类头上,注解声明了该实体bean映射指定的表(table)。
@Id用来注册主属性,@GeneratedValue用来注册主属性的生成策略,@Column用来注册属性,@Version用来注册乐观锁,@Transient用来注册不是属性。
以上的@Id、@GeneratedValue、 @Column 、 @Version,可以用来注册属性,既可以写在Java类的属性上,也可以注册在属性对应的getter上。
@Transient注册在多余的属性或多余的getter上,但是必须与以上的@Column等对应。
@Column
标识属性对应的字段,示例:@Column(name=“userName")
java代码:
- @Column (
- name="columnName" ; ( 1 )
- boolean unique() default false ; ( 2 )
- boolean nullable() default true ; ( 3 )
- boolean insertable() default true ; ( 4 )
- boolean updatable() default true ; ( 5 )
- String columnDefinition() default "" ; ( 6 )
- String table() default "" ; ( 7 )
- int length() default 255 ; ( 8 )
- int precision() default 0 ; // decimal precision (9)
- int scale() default 0 ; // decimal scale (10)
(1) name 可选,列名(默认值是属性名)
(2) unique 可选,是否在该列上设置唯一约束(默认值false)
(3) nullable 可选,是否设置该列的值可以为空(默认值false)
(4) insertable 可选,该列是否作为生成的insert语句中的一个列(默认值true)
(5) updatable 可选,该列是否作为生成的update语句中的一个列(默认值true)
(6) columnDefinition 可选: 为这个特定列覆盖SQL DDL片段 (这可能导致无法在不同数据库间移植)
(7) table 可选,定义对应的表(默认为主表)
(8) length 可选,列长度(默认值255)
(8) precision 可选,列十进制精度(decimal precision)(默认值0)
(10) scale 可选,如果列十进制数值范围(decimal scale)可用,在此设置(默认值0)
@Id,标识这个属性是实体类的唯一识别的值。
注意:这个注解只能标注单一列构成的主键,如tbl_grade那种有两个字段组成的联合主键由其他注解标识。
回忆*.hbm.xml:
<id name=
"uuid">
<generator class=
"assigned"/>
</id>
@Id,只是标识这个属性是主键,但是并没有指出其生成策略,如上例中的assigned就是由程序员指定的生成策略。
如果仅仅写出@Id,即是使用assigned生成略,如:
java代码:
- @Id
- @Column
- private int uuid;
- 如果想使用Oracle支持的sequence取主键,必须通过@GeneratedValue 来指定生成策略,而由 @SequenceGenerator 指定如何使用sequence。
- @Id
- @Column
- @GeneratedValue (
- strategy = GenerationType.SEQUENCE,//使用sequence生成主键
- generator =“generator“//引用下面名为gernator的生成策略
- )
- @SequenceGenerator (
- name = “generator”,//定义名为generator的生成策略
- allocationSize = 1 , //每次sequence加1
- name=“seq_a”//引用名为seq_a的sequence
- )
- private int uuid;
- @Version
标识这个属性用来映射乐观锁的version
@Transient
标识这个属性不用持久化
@Embeddable【小对象的头上】
标识实体中可以定义一个嵌入式组件(embedded component)。组件类必须在类一级定义@Embeddable注解。
@Embedded【大对象的属性头上】
引用定义的小对象。
@Embeddable【小对象的头上】
标识实体中可以定义一个嵌入式组件(embedded component)。组件类必须在类一级定义@Embeddable注解。
注意:如果这个小对象作为复合主键,一定要实现Serializable接口。这并不是注解决定的,而是Hibernate的主键都需要实现Serializable接口。
@EmbeddedId 【大对象的属性头上】
引用定义的小对象作为主键。
注意:不需要再使用@Id注解。
标准的1:1
XML的配置
注解的配置
java代码:
- 主 1 【tbl_product】:
- @OneToOne (cascade=CascadeType.ALL)
- @PrimaryKeyJoinColumn
- private ProductInfoModel info;
- 从1 【tbl_product_info】:
- @Id
- @Column
- @GeneratedValue (generator=“copy【引用生成策略】")
- @GenericGenerator (name=“copy【定义生成策略】”,strategy=“foreign【写死,使用外来策略】”,parameters= @Parameter (name=“property”,value=“product【引用自己的Java属性】"))
- private int uuid;
- @OneToOne (mappedBy=“info【引用对方的Java属性】")
- private ProductModel product;
标准的1:M
XML的配置
注解的配置
标准的1:M
XML的配置
java代码:
- <set name=“courses” table=“tbl_grade【联接表】">
- <key column=“suuid【联接表里代表自己的数据库字段名】"/>
- <many-to-many column=“cuuid【联接表里代表对方的数据库字段名】” class =“cn.javass.model.e.CourseMode【对方的类名】l"/>
- </set>
- 注解的配置
- @ManyToMany
- @JoinTable (
- name=“tbl_grade【联接表】",
- joinColumns=@JoinColumn (name= "suuid【联接表里代表自己的数据库字段名】" ),
- inverseJoinColumns=@JoinColumn (name="cuuid 【联接表里代表对方的数据库字段名】” )
- )
- private Set<CourseModel> courses = new HashSet<CourseModel>();
标准的1:M
XML的配置
注解的配置
标准的1:M
XML的配置
java代码:
- 1 【tbl_parent】:
- <set name=“children” table=“tbl_parent_child【联接表】">
- <key column=“puuid【联接表里代表自己的数据库列名】"/>
- <many-to-many column=“cuuid【联接表里代表对方的数据库列名】” unique=“true 【写死】”
- class =“cn.javass.model.d.ChildModel【对方的Java类名】"/>
- </set>
- <join table=“tbl_parent_child【联接表】">
- <key column="cuuid【联接表里代表自己的数据库列名】" />
- <many-to-one name="parent" column= "puuid【联接表里代表对方的数据库列名】" unique= "true【写死】" />
- </join>
注解的配置
java代码:
- 1 【tbl_parent】:
- @OneToMany (mappedBy= "parent【对方的Java类属性名 】" )
- private Set<ChildModel> children = new HashSet<ChildModel>();
- 多【tbl_child】:
- @ManyToOne
- @JoinTable (
- name=“tbl_parent_child【联接表】",
- joinColumns=@JoinColumn (name= "cuuid【联接表里代表自己的数据库字段名】" ),
- inverseJoinColumns=@JoinColumn (name= "puuid【联接表里代表对方的数据库字段名】" )
- )
- private ParentModel parent;
标准的1:M
XML的配置
原创内容 转自请注明【
http://sishuok.com/forum/blogPost/list/2485.html#7185
】
发表评论
-
c3p0数据库连接池自动重连的配置
2012-05-16 23:30 1199在Tomcat中配置c3p0数据库连接池的时候,如果数据库重启 ... -
Hibernate4 有感
2012-05-11 14:23 1659这两天看了看Hibernate4.x ... -
C3P0连接池配置
2012-05-11 10:00 835<c3p0-config> <defau ... -
Hibernate性能优化(四)转载
2012-01-29 14:58 702本文依照HIBERNATE帮助文档,一些网络书 ... -
Hibernate性能优化(三)转载
2012-01-29 14:57 806性能优化策略 ... -
Hibernate性能优化(二)转载
2012-01-29 14:55 7581、针对oracle数据库而言,Fetch Size 是设 ... -
Hibernate性能优化(一)转载
2012-01-29 14:52 734有很多人认为Hib ...
相关推荐
Hibernate4 实战 零配置 Hibernate4实战之Hibernate4注解零配置
2.1.3 Hibernate配置和启动 2.1.4 运行和测试应用程序 2.2 启动Java Persistence项目 2.2.1 使用Hibernate Annotations 2.2.2 使用Hibernate EntityManager 2.2.3 引入EJB组件 2.2.4 切换...
本课程讲述Java ORM框架Hibernate,内容包括:环境配置、Hibernate架构、SessionFactory、Session、映射文件、基于注解的配置、JPA、HQL查询、Criteria查询、关联映射、缓存、正逆向工程。
内容提要 本书深入浅出地介绍了轻量级开源框架Hibernate3的... “使用Hibernate并非易事,本书透彻地阐述了Hibernate的原理与应用,并配有大量实战代码,能够使新用户非常轻松地入门。” ——RegDeveloper.co.uk
4.10.2 使用注解配置信息启动Spring容器 4.10.3 自动装配Bean 4.10.4 Bean作用范围及生命过程方法 4.11 基于Java类的配置 4.11.1 使用Java类提供Bean定义信息 4.11.2 使用基于Java类的配置信息启动Spring容器 4.12 ...
4.10.2 使用注解配置信息启动Spring容器 4.10.3 自动装配Bean 4.10.4 Bean作用范围及生命过程方法 4.11 基于Java类的配置 4.11.1 使用Java类提供Bean定义信息 4.11.2 使用基于Java类的配置信息启动Spring容器 4.12 ...
第16章:有别于一般书籍的单元测试内容,本书以当前最具实战的JUnit4+Unitils+ Mockito复合测试框架对如何测试数据库、Web的应用进行了深入的讲解。 第17章:以一个实际的项目为蓝本,带领读者从项目需求分析、...
│ 开篇词 勇敢走出舒适区,突破自己的技术瓶颈.mp4 ...│ 20 Spring JPA 中的 Hibernate 加载过程与配置项是怎么回事?.mp4 │ 21 Peritence Context 所表达的核心概念是什么?.mp4 │ 22 Seio
第7章:对如何使用基于AspectJ配置AOP的知识进行了深入的分析,这包括使用XML Schema配置文件、使用注解进行配置等内容。 第8章:介绍了Spring所提供的DAO封装层,这包括Spring DAO的异常体系、数据访问模板等...
最近的项目在用Spring3,涉及到了基于注解的MVC,事务管理,与hibernate的整合开发等内容,我打算写一个系列出来,记录下这个痛苦但又充满成就感的过程----网上实在太难找能让新手快速理解掌握的文章了 我打算从这几...
3.1 应用场景 在一些开源框架里,如Spring,Struts,Hibernate,MyBatis等,应用程序会提供一个配置文件如xml文件或者properties,然后在Java类里面解析xml或properties里面的内容,得到一个字符串,然后用反射机制...
企业常用框架springMVC基于注解+xml配置方式实现链接 WEB服务器优化之Tomcat7性能调优 JVM概述 Java开发技术之(项目工程的日志管理) 数据库连接池原理详解 Java企业级框架之核心技术(反射) Java-Base64算法(创新_...
│ 26-补充-关于hibernate中一对一唯一主键关联的补充-1.mp4 │ 27-vue的路由-1.mp4 │ 28-shiro介绍和quickstart样例项目-1.mp4 │ 29-quickstart项目的创建和日志系统的分析-1.mp4 │ 30-使用自定义realm-1.mp4 │...
MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录. orm工具的基本思想 无论是用过的hibernate,mybatis,你都可以法相他们有一个...
第26章零配置 316 26.1 准备工作 316 26.2 注解 317 26.2.1 @Result注解 317 26.2.2 @Results注解 318 26.2.3 @Namespace注解 318 26.2.4 @ParentPackage注解 319 26.3 CodeBehind插件 319 26.4 小结 321 ...