`
forge
  • 浏览: 23032 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

四.对象关系映射-part3

    博客分类:
  • JPA
 
阅读更多

 

使用 XML 映射


JPA 中每一个注解都有一个对应的 XML 标签。 JPA2.0 规范第 12 章覆盖了所有的 XML 标签细节。

配置 XML 会覆盖注解中的值。如果你用某个值注解了一个属性或实体,同时你在 XML 部署描述符中配置了另一个值,那么,会采用 XML 中的值。


 

例:

 

@Entity
public class Book {
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	private Long id;
	private String title;
	private Float price;
	@Column(length = 500)
	private String description;
	private String isbn;
	private Integer nbOfPage;
	private Boolean illustrations;
	// Constructors, getters, setters
}

 

 

META-INF/book_mapping.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm
http://java.sun.com/xml/ns/persistence/orm_2_0.xsd"
	version="2.0">
	
	<entity class="org.example.myproject.model.Book">
		<table name="book_xml_mapping" />
		<attributes>
			<basic name="title">
				<column name="book_title" nullable="false" updatable="false" />
			</basic>
			<basic name="description">
				<column length="2000" />
			</basic>
			<basic name="nbOfPage">
				<column name="nb_of_page" nullable="false" />
			</basic>
		</attributes>
	</entity>
	
</entity-mappings>

 

persistence.xml 部分代码:

 

<persistence-unit name="primary">
		
		<provider>org.hibernate.ejb.HibernatePersistence</provider>
		<mapping-file>META-INF/book_mapping.xml</mapping-file>
		<class>org.example.myproject.model.Book</class>
		...
		
</persistence-unit>	

 

 

最后是 XML 元数据和注解元数据的合并映射结果,产生的 DDL

 

CREATE TABLE `book_xml_mapping` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `description` longtext,
  `illustrations` bit(1) DEFAULT NULL,
  `isbn` varchar(255) DEFAULT NULL,
  `nb_of_page` int(11) NOT NULL,
  `price` float DEFAULT NULL,
  `book_title` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
)
 

 

1
2
分享到:
评论

相关推荐

    Hibernate程序高手秘笈.part01-03.rar

    3. 实体类与对象关系映射:讲解如何定义Java实体类,并使用注解或XML文件进行对象关系映射,包括基本类型映射、关联映射(一对一、一对多、多对一、多对多)和继承映射。 4. Session与Transaction:介绍Hibernate的...

    ssm-spring-part.rar

    - **数据访问集成(Data Access/Integration)**:Spring提供了JDBC抽象层,简化了数据库操作,同时支持ORM(对象关系映射)框架如Hibernate和MyBatis。 - **MVC框架(Model-View-Controller)**:Spring MVC是...

    struts-2.3.1.2-part2.rar

    而Hibernate作为持久层框架,简化了数据库操作,提供了ORM(对象关系映射)功能。 SSH框架的整合使得开发者能够更有效地管理应用程序的各个层次,实现松耦合、高复用的设计。例如,通过Spring的DI,可以轻松地更换...

    Hibernate程序高手秘笈.part07-09.rar

    这部分内容主要包含Part07和Part09两个部分,旨在帮助开发者提升在数据库操作和对象关系映射方面的技能。 Part07可能涉及的主题包括: 1. **持久化策略**:讲解了Hibernate的各种持久化策略,如懒加载(Lazy ...

    Hibernate程序高手秘笈.part04-06.rar

    3. **映射文件详解**:详细讲解XML或注解方式的实体映射,包括属性映射、关系映射(一对一、一对多、多对多)、继承映射等。 4. **HQL(Hibernate Query Language)**: Hibernate自己的查询语言,类似于SQL,但更...

    Linq-To-Sql-Part_2-Define-Data-Model-Class

    总结来说,“Linq-To-Sql-Part_2-Define-Data-Model-Class”这个主题将指导你如何使用LINQ to SQL创建数据模型类,理解对象关系映射原理,以及如何编写查询和管理数据库交互。了解这些知识点后,你可以更有效地在...

    Hibernate程序高手秘笈.part10-11.rar

    5. **多对多关系映射**:详述如何配置和处理多对多关联,包括中间表的管理,以及集合的懒加载和级联操作。 6. **一对一关系映射**:深入讨论一对一关系的配置,包括外键约束、主键共享以及一对一关系的级联操作。 ...

    extjs+struts+hibernate+spring(物流管理系统)-part3

    通过ORM(对象关系映射),它将Java对象映射到数据库表,使得开发者可以使用面向对象的方式来操作数据库。 - Spring:是Java企业级应用开发的核心框架,提供依赖注入、AOP(面向切面编程)、事务管理等功能,使得...

    hiberante4.2.3-part01

    Hibernate是Java领域中一款广泛应用的关系对象映射框架,它允许开发者使用面向对象的方式来操作数据库,大大简化了数据访问层的编码工作。这个压缩包“hibernate4.2.3-part01”很可能是Hibernate 4.2.3版本的一部分...

    hibernate-4.3.5(part1)

    Hibernate是一个流行的开源对象关系映射(ORM)框架,它允许Java开发者在处理数据库时使用面向对象的方式,极大地简化了数据库操作。在这个版本中,我们可能会发现一系列用于数据库交互的API、配置文件、示例代码和...

    XCP协议层标准ASAM_XCP_Part2-Protocol-Layer-Specification_V1-1-0

    7. 数据类型的映射:这部分描述了XCP中定义的数据类型和ASAM标准数据类型之间的映射关系。为了确保不同系统和设备间数据的一致性和可交换性,数据类型的映射是必要的。 8. 文档的版权和声明:文档指出其内容版权...

    Hibernate part 8:一对多关联关系映射

    在Java世界中,ORM(对象关系映射)框架如Hibernate极大地简化了数据库操作。本篇文章主要探讨的是Hibernate中的一对多关联关系映射,这是在实际项目开发中非常常见的一种关系映射类型。通过理解并掌握一对多关联,...

    hibernate3.3.2jar包part1

    Hibernate,作为一个流行的开源对象关系映射(ORM)框架,为Java开发者提供了一种简单而强大的方式来管理数据库操作。在Java应用中,Hibernate使得开发人员可以将业务逻辑与数据库操作解耦,从而更加专注于应用程序...

    hibernate-distribution-3.3.1.part4

    Hibernate是一个广泛使用的Java库,用于将对象关系映射(ORM)到关系数据库,简化数据库操作,让开发者可以使用面向对象的方式来处理数据库。 在Java世界中,ORM工具如Hibernate消除了手动编写SQL语句的需要,使得...

    Hiberante part 9:一对一关系映射

    Hibernate作为Java领域中最流行的ORM(对象关系映射)工具,它允许开发者以面向对象的方式处理数据库操作,简化了数据库与Java应用程序之间的交互。一对一关系映射是数据库设计中常见的一种关联类型,表示一个实体与...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     21.5.3 对游离对象进行版本检查  21.5.4 强制更新版本  21.6 实现乐观锁的其他方法  21.7 小结  21.8 思考题 第22章 管理Hibernate的缓存  22.1 缓存的基本原理  22.1.1 持久化层的缓存的范围  22.1.2 持久...

Global site tag (gtag.js) - Google Analytics