- 浏览: 399837 次
- 性别:
- 来自: 昆明
文章分类
- 全部博客 (198)
- java (28)
- J2EE (19)
- struts (33)
- sping (13)
- hibernate (18)
- mybatis (15)
- connection pool (3)
- DB (26)
- SQL (21)
- html (13)
- js (7)
- json (3)
- jquery (2)
- document (17)
- linux (15)
- C# (1)
- url (2)
- eweb4j (1)
- Turbine (1)
- 框架 (11)
- jdbcTemplate (3)
- aop (2)
- windows (2)
- ubuntu (1)
- eclipse (11)
- JPA (8)
- svn (4)
- get 传值 (2)
- mysql (5)
- oracle (2)
- hadoop (1)
- MongoDB (2)
- spring (1)
- python (1)
最新评论
-
jcbingjc:
楼主,你好,按照上面的配置,我报如下错误:Missing Pe ...
[properJavaRDP]在网页中实现远程连接 -
sucful:
折腾了半天跑不通 ,要传就搞个完整的吧
Struts2 <sx:div/>实现页面模块异步刷新 -
Kattou:
你好! 看了你写的这个分页 感觉很好, 但是不怎么会用么,请指 ...
jsp分页控件 -
我叫PSB:
地址完全用不了
eclipse中的安装 jseclipse -
1111emotion:
我的工程里还是有乱码的情况,我该改的地方都改了。
Eclipse/MyEclipse更改默认字符集 设置UTF-8
JPA支持继承关系,使开发者可以利用继承的思想建模。
有一个实体Person,他是一个抽象实体,他有两个子实体:Man,Woman。
先写Person类:
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
//@DiscriminatorColumn(name="tableName")可选
public class Base implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private Date createTime = new Date();
@Id
@GeneratedValue
private int id;
。。。
}
注意,对于抽象父类,必须设置两个注释:
1. Inheritance strategy:用来声明继承策略。可选值是InheritanceType.SINGLE_TABLE(为类继承体系中的每个类创建一张相同的表)、InheritanceType.JOINED(为类继承体系中的每个类创建不同的表)和InheritanceType .TABLE_PER_CLASS(将属性映射到子类中)。缺省值是InheritanceType.SINGLE_TABLE,表示只生成一张表。
2. DiscriminatorColumn name:用来说明子类使用那个字段区分,这里使用sex字段区分Man实体和Woman实体。
编写Man类和Woman类:
@Entity
//@DiscriminatorValue(value="users")可选
public class Users extends Base implements Serializable {
private String remark="";
。。。
}
@Entity
//@DiscriminatorValue(value="role")可选
public class Role extends Base implements Serializable {
private String name = "";
。。。
}
InheritanceType.JOINED生成多张表:
DiscriminatorColumn、 DiscriminatorValue不要设置,
数据库中有3张表:base(id,createTime)、users(id,remark)、role(id,name)
添加user:
Hibernate: insert into Base (createTime) values (?)
Hibernate: insert into Users (remark, id) values (?, ?)
添加role:
Hibernate: insert into Base (createTime) values (?)
Hibernate: insert into Role (name, id) values (?, ?)
删除同删、修改同改、添加同加。
InheritanceType.SINGLE_TABLE生存同一张表:
子类实体只需要设置DiscriminatorValue属性,当sex值为0时表示Man对象(此对象的womanService字段为null),当sex值为1时表示Woman对象(此对象的manService字段为null)。
数据库有1张表:base(id,createTime,remark,name);
InheritanceType .TABLE_PER_CLASS生成多张表:
DiscriminatorColumn、 DiscriminatorValue不要设置,
数据库中有2张表: users(id,remark,createTime)、role(id,name,createTime)
关于主键自增+加以下标识
@GeneratedValue(strategy = GenerationType.TABLE, generator = "customer_gen")
@TableGenerator(
name = "customer_gen",
table = "tb_generator_auto",
pkColumnName = "gen_name",
valueColumnName = "gen_value",
pkColumnValue = "CUSTOMER_PK",
allocationSize = 1
)
- src.rar (5.1 KB)
- 下载次数: 13
发表评论
-
Hibernate one-to-many 属性设置
2012-03-26 16:49 1314使用Hibernate提供的one-to-many来实现 ... -
struts2 result type 介绍
2012-03-23 09:14 1166在默认时,<result>标签的type属性值是“ ... -
jpa 表生成器 GenerationType.TABLE.
2012-03-15 17:38 4430将当前主键的值单独保存到一个数据库的表中,主键的值每次都是从指 ... -
cannot simultaneously fetch multiple bags异常的解决
2012-03-15 16:18 2417原文来自于http://howsun.bl ... -
EntityManager
2012-03-13 14:23 1230EntityManager ma ... -
EJB3 JPA JPQL 语句 查询 使用 函数 分页 子查询(2)
2012-03-03 16:50 1740关联(join) JPQL仍然支持和SQL中类似的 ... -
Struts2整合Spring、JPA
2012-02-27 09:46 1919一直觉得JPA很神秘,最近抽空看了下,下面贴出刚才做的St ... -
JPA查询语言之EJBQL+JPQL
2011-11-30 13:30 5068简单查询 返回所有Topic对象的记录: SELECT ... -
spring mvc 配置
2011-11-28 14:14 14361、/WEB-INF/web.xml <ser ... -
spring jdbcTemplate调用存储过程
2011-11-27 21:36 1464第一种方式: List<Map<String,Ob ... -
spring3之JdbcTemplate AOP 事务
2011-11-27 01:36 7459一、applicationContext.xml配置:定义事务 ... -
spring3之JdbcTemplate详解
2011-11-27 01:36 34091、JdbcTemplate操作数据库 Spring ... -
JAVA三大框架的各自作用
2011-11-25 00:04 3199一、Spring Spring是 ... -
Turbine 框架介绍
2011-11-26 00:16 2256Jakarta Turbine 可能大家不是非常熟悉,但是它是 ... -
使用SSH到底是为了快速开发,还是为了标准?
2011-11-25 00:00 2471使用SSH到底是为了快速开发,还是为了标准? 使用S ... -
Struts2、Spring、Hibernate 高效开发的最佳实践
2011-11-26 00:16 1269引言 SSH(Struts2+Spring+Hi ... -
SiteMesh模板应用与struts2整合
2011-11-23 09:23 1734SiteMesh是一个非常优秀 ... -
hibernate 的createSQLQuery的几种用法
2011-11-08 08:06 1073使用SQLQuery 对原生SQL查询执 ... -
Hibernate执行sql语句
2011-11-08 08:06 1417Hibernate执行sql语句 : BasicServi ... -
Hibernate 插入,修改,删除,查询语句
2011-11-08 08:07 3662Hibernate 语法: Hiberna ...
相关推荐
本篇文章将深入探讨如何在JPA中映射关联和实现继承。 **一、JPA关联映射** 1. **一对一(OneToOne)映射**:一个实体对象对应数据库中的一个记录。通过`@OneToOne`注解来实现,可以是单向或双向。`@JoinColumn`...
以上内容涵盖了JPA实现数据库操作的基础知识,随着项目的深入,你可能需要学习更多关于Spring与JPA集成的内容,包括Spring Boot、Spring Data JPA、事务管理、分页查询、自定义查询方法等,这些都是构建高效、可维护...
而JPA作为ORM(对象关系映射)规范的实现,使得我们能方便地处理数据库操作。Thymeleaf则是一个强大的服务器端模板引擎,用于生成HTML或其他格式的输出。 首先,确保在项目中添加了Spring Data JPA、Spring Web和...
`NodeRepository`可以继承`JpaRepository, Long>`,并添加自定义方法来处理递归查询,例如获取某个节点的所有子孙节点: ```java public interface NodeRepository extends JpaRepository, Long> { List<Node> ...
**Java Persistence API (JPA)** 是Java平台上的一个标准,用于管理关系数据库中的对象-关系映射(ORM)。它提供了一种方式,让开发者可以用面向对象的编程模型来操作数据库,而无需直接编写SQL语句。JPA允许你在...
4. **Repository接口**:定义一个接口,继承自`JpaRepository, Long>`。这个接口提供了基本的CRUD(创建、读取、更新、删除)操作。例如,可以定义一个`findAll()`方法来获取所有学生信息。 5. **Service层**:创建...
若希望实现懒加载,可以在继承关系中使用`@OneToMany`或`@ManyToOne`注解并设置`fetch = FetchType.LAZY`。 7. **性能考虑** 不同的继承策略对数据库性能和设计有不同影响。STI可能导致表膨胀,而TPC可能导致更多...
这就是使用Spring和JPA实现简单CRUD的基本步骤。在实际应用中,你可能还需要考虑更多的细节,如错误处理、验证、分页、排序等。同时,可以利用Spring Data JPA的其他功能,如动态查询、自定义查询方法等,以提高开发...
2. **JPA (Java Persistence API)**: JPA是Java EE的一部分,它是用来管理关系数据库的对象关系映射(ORM)框架。JPA允许开发者用Java对象来操作数据库,而无需直接编写SQL语句。在Spring Boot中,我们可以使用...
- 创建一个接口,继承自`JpaRepository`或`CrudRepository`。这些接口提供了基本的CRUD操作,无需编写任何DAO层代码。 5. **创建服务层(Service)** - 定义一个服务类,注入刚才创建的Repository接口,实现业务...
Spring Boot简化了Java应用的初始设置,而JPA作为Java的一个标准,提供了ORM(对象关系映射)功能,让我们能够以面向对象的方式处理数据库操作。 首先,我们需要在Spring Boot项目中添加JPA和相应的数据库驱动依赖...
批注是JPA实现ORM的关键,它允许在Java源代码中添加元数据,这些元数据在运行时会被JPA持久化提供程序解析以管理对象的持久化行为。 以下是一些重要的JPA批注及其用途: 1. **实体批注**: - `@Entity`:用于标记...
**Java Persistence API (JPA)** 是Java平台上的一个标准,用于管理和持久化对象到关系数据库。JPA通过提供ORM(对象关系映射)能力,使得开发者可以使用面向对象的编程模型来操作数据库,而无需直接编写SQL语句,极...
在这个**“JPA视频教程_使用jpa映射关联和继承”**中,我们将深入探讨如何利用JPA来处理实体之间的关联和类的继承关系。 **1. JPA 注解** JPA 注解是实现ORM的主要手段,它们可以直接在实体类上声明,用于定义...
JPA 通过注解或 XML 配置来定义对象与数据库表之间的映射关系,实现了数据持久化。 Spring Data JPA 是 Spring Data 家族的一员,它的设计目标是进一步减少开发人员在数据访问层的工作量。通过 Spring Data JPA,...
9. **懒加载(Lazy Loading)**:默认情况下,JPA实现如Hibernate支持懒加载,即关联的对象只在真正需要时才从数据库加载,以提高性能。 10. **事件监听器(Event Listeners)**:JPA允许注册监听器来在特定的生命...
- **支持面向对象的高级特性**:JPA 支持诸如类继承、多态和复杂关系等面向对象的特性。 #### 四、JPA 技术要点 - **ORM 映射元数据**:可以通过 XML 或 JDK 5.0 注解来定义对象和数据库表之间的映射关系。 - **JPA...
了解并熟练使用这些注解是实现JPA高效持久化的关键。在开发过程中,开发者可以根据需求选择合适的注解,通过异常配置来定制实体的行为,以满足特定的数据库交互需求。Oracle TopLink(现为EclipseLink)提供了对JPA ...