- 浏览: 271217 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
chenshi011:
无意中,看到LZ博客感觉多门语言都精通啊,尤其还做GIS啊,敢 ...
WorldWind学习笔记[一] -
supperman:
不能用~!
windows下Nginx启动、关闭、重启bat工具 -
join_lin:
攒。。
spket.config.xml -
awaterway:
可以用,多谢
IntelliJ IDEA 9.0 注册机/注册码/keygen/破解版 -
qq3553174:
你好,我刚刚接触仿真地图。请问如果要将世界风嵌入AIR程序中如 ...
WorldWind学习笔记[一]
@Entity//标识这个pojo是一个jpa实体 @Table(name = "users") //指定表名为users public class Users implements Serializable { @Id//设置主键 private String userId; //设置字段类型通过@Column注解设置,包含的设置如下 //name:字段名 //unique:是否唯一 //nullable:是否可以为空 //inserttable:是否可以插入 //updateable:是否可以更新 //columnDefinition: 定义建表时创建此列的DDL //secondaryTable: 从表名。如果此列不建在主表上(默认建在主表),该属性定义该列所在从表的名字。 @Column(name = "user_code", nullable = false, length=32)//设置属性userCode对应的字段为user_code,长度为32,非空 private String userCode; @Column(name = "user_wages", nullable = true, precision=12, scale=2)//设置属性wages对应的字段为user_wages,12位数字可保留两位小数,可以为空 private double wages; @Temporal(TemporalType.DATE)//设置为时间类型 private Date joinDate; @OrderBy(name = "group_name ASC, name DESC")//[字段排序]在加载数据的时候可以为其指定顺序,使用@OrderBy注解实现 private List books = new ArrayList(); }
---------------------------------------------------
//主键生成策略 public class Users implements Serializable { @Id @GeneratedValue(strategy=GenerationType.IDENTITY)//主键自增,注意,这种方式依赖于具体的数据库,如果数据库不支持自增主键,那么这个类型是没法用的 @Column(name = "user_id", nullable = false) private int userId; } public class Users implements Serializable { @Id @GeneratedValue(strategy=GenerationType.TABLE)//通过一个表来实现主键id的自增,这种方式不依赖于具体的数据库,可以解决数据迁移的问题 @Column(name = "user_code", nullable = false) private String userCode; } public class Users implements Serializable { @Id @GeneratedValue(strategy=GenerationType.SEQUENCE)//通过Sequence来实现表主键自增,这种方式依赖于数据库是否有SEQUENCE,如果没有就不能用 @SequenceGenerator(name="seq_user") @Column(name = "user_id", nullable = false) private int userId; }
//一对多映射关系 //有T_One和T_Many两个表,他们是一对多的关系,注解范例如下 //主Pojo @Entity @Table(name = "T_ONE") public class One implements Serializable { private static final long serialVersionUID = 1L; @Id @Column(name = "ONE_ID", nullable = false) private String oneId; @Column(name = "DESCRIPTION") private String description; @OneToMany(cascade = CascadeType.ALL, mappedBy = "oneId")//指向多的那方的pojo的关联外键字段 private Collection<Many> manyCollection; //子Pojo @Entity @Table(name = "T_MANY") public class Many implements Serializable { private static final long serialVersionUID = 1L; @Id @Column(name = "MANY_ID", nullable = false) private String manyId; @Column(name = "DESCRIPTION") private String description; @JoinColumn(name = "ONE_ID", referencedColumnName = "ONE_ID")//设置对应数据表的列名和引用的数据表的列名 @ManyToOne//设置在“一方”pojo的外键字段上 private One oneId;
//多对多映射关系 //貌似多对多关系不需要设置级联,以前用hibernate的时候着实为多对多的级联头疼了一阵子,JPA的多对多还需要实际的尝试一下才能有所体会。 //估计JPA的多对多也是可以转换成两个一对多的。 //第一个Pojo @Entity @Table(name = "T_MANYA") public class ManyA implements Serializable { private static final long serialVersionUID = 1L; @Id @Column(name = "MANYA_ID", nullable = false) private String manyaId; @Column(name = "DESCRIPTION") private String description; @ManyToMany @JoinTable(name = "TMANY1_TMANY2", joinColumns = {@JoinColumn(name = "MANYA_ID", referencedColumnName = "MANYA_ID")}, inverseJoinColumns = {@JoinColumn(name = "MANYB_ID", referencedColumnName = "MANYB_ID")}) private Collection<ManyB> manybIdCollection; //第二个Pojo @Entity @Table(name = "T_MANYB") public class ManyB implements Serializable { private static final long serialVersionUID = 1L; @Id @Column(name = "MANYB_ID", nullable = false) private String manybId; @Column(name = "DESCRIPTION") private String description; @ManyToMany(mappedBy = "manybIdCollection") private Collection<ManyA> manyaIdCollection;
//一对一映射关系 //主Pojo @Entity @Table(name = "T_ONEA") public class OneA implements Serializable { private static final long serialVersionUID = 1L; @Id @Column(name = "ONEA_ID", nullable = false) private String oneaId; @Column(name = "DESCRIPTION") private String description; @OneToOne(cascade = CascadeType.ALL, mappedBy = "oneA")//主Pojo这方的设置比较简单,只要设置好级联和映射到从Pojo的外键就可以了。 private OneB oneB; //从Pojo @Entity @Table(name = "T_ONEB") public class OneB implements Serializable { private static final long serialVersionUID = 1L; @Id @Column(name = "ONEA_ID", nullable = false) private String oneaId; @Column(name = "DESCRIPTION") private String description; @JoinColumn(name = "ONEA_ID", referencedColumnName = "ONEA_ID", insertable = false, updatable = false)//设置从方指向主方的关联外键,这个ONEA_ID其实是表T_ONEA的主键 @OneToOne private OneA oneA;
//大字段[图像2制制] @Lob //对应Blob字段类型 @Column(name = "PHOTO") private Serializable photo; @Lob //对应Clob字段类型 @Column(name = "DESCRIPTION") private String description;
//瞬时字段[不需要与数据库映射的字段,在保存的时候不需要保存倒数据库] @Transient private int tempValue; public int getTempValue(){ return tempValue; } public void setTempValue(int value){ this.tempValue = value; }
发表评论
-
使用Spring @Scheduled注解执行定时任务
2015-07-30 01:45 2077配置我们的dispatcherContex ... -
MySQL忘记ROOT密码时修改
2013-09-25 14:34 759Windows下的实际操作如下 1.关闭正在运行的MySQL。 ... -
maven 添加 本地 jar
2013-09-10 23:31 752先在pom.xml中添加一个资源: <repositor ... -
maven scope含义的说明
2013-09-09 13:27 713依赖范围控制哪些依赖在哪些classpath 中可用,哪些依赖 ... -
JPA Criteria API
2013-01-27 22:19 3225//hibernate 3.5.1 // //Simple ... -
Google Code personal maven repository
2012-12-28 11:59 1657Getting your jar of a library o ... -
URLConnection 读写url
2012-12-12 22:16 911protected void doGet(HttpServle ... -
Spring MVC 笔记 1
2012-10-18 12:35 10921.新建maven 工程 mvn archetype:gene ... -
mysql导入导出
2012-10-17 11:26 11051.导出整个数据库 mysqldump -u 用户名 -p ... -
Java泛型接口
2012-09-16 17:40 920package me.cjx.example; interf ... -
Windows中Java连接Access数据库
2012-09-16 12:00 16241、直接在Java代码内部Access数据库package m ... -
Hibernate本地方言本配置
2012-09-16 10:56 877在开发hibernate的程序时,需要进行SessionF ... -
maven使用时发生tools.jar错误
2012-07-26 22:59 3723在Maven使用时会发生tools.jar这个包错误,查看Bu ... -
PostGIS导入导出SHP文件常用命令
2012-07-15 16:04 8130SHP导入POSTGIS数据库 引用直接导入数据库 shp2p ... -
maven最基本的建项目和运行
2012-06-04 08:19 1072建一个空的普通app项目 mvn archetype:crea ... -
Java获得客户端真实IP
2012-05-28 19:57 994获得客户端真实IP地址的方法一: public String ... -
APK反编译
2010-10-14 14:35 1898反编译apk 一、更改apk文件的后缀名,如:citymap. ... -
GIS
2010-05-18 17:11 1479============================Lin ... -
HP大中华区总裁孙振耀职场九大感言
2010-03-21 22:05 1058如果这篇文章没有分享 ... -
nexus服务搭建
2010-02-22 01:18 13051.下载Nexus 2.解压即可 配置文件($nexus_pa ...
相关推荐
JPA(Java Persistence API)是Sun公司提出的一种Java持久化规范,旨在简化Java应用程序中关系数据的管理。它提供了一种对象/关系映射(ORM)工具,允许开发人员以面向对象的方式处理数据库操作,而不是直接编写SQL...
**JPA笔记** Java Persistence API(JPA)是Java平台上的一个标准,用于管理关系数据库中的数据。它为Java开发者提供了一种对象/关系映射(ORM)工具,简化了数据库操作,使得开发者可以使用面向对象的方式来处理...
JPA 的全称是 Java Persistence API, 即 Java 持久化 API,是 SUN 公司推出的一套基于 ORM 的规范,内部是由一系列的接口和抽象类构成。JPA 的查询语言是面向对象而非面向数据库的,它以面向对象的自然语法构造查询...
它的主要功能包括对象的持久化、查询语言JPQL(Java Persistence Query Language)、事务管理、关系映射等。JPA允许开发者定义对象的生命周期方法,如@PrePersist、@PostPersist、@PreRemove等,以便在对象的生命...
### JPA 学习笔记详解 #### 一、JPA 概述 Java Persistence API (JPA) 是 Sun 公司提出的一种 Java 持久层标准,它为 Java 开发者提供了一种对象关系映射 (ORM) 的工具来管理 Java 应用程序中的关系型数据。JPA ...
在Java Persistence API (JPA) 中,实体对象的状态管理是实现数据持久化的基础之一。根据实体对象与实体管理器(EntityManager)之间的交互关系,实体对象可以处于以下几种状态: 1. **瞬时状态(Transient State)...
Spring Data JPA 是一个强大的框架,它简化了与Java持久层的交互,允许开发者以声明式的方式处理数据库操作。这个框架是Spring生态的一部分,专门用于简化JPA(Java Persistence API)的使用。下面将详细解释Spring ...
而在JPA中,引入了"entity identity"或"persistent identity",它通过实体的identity fields来判断两个持久化对象是否代表数据库中的同一条记录。 Persistent Fields是JPA关注的重点,这些字段由JPA管理并负责与...
Hibernate通过XML或注解来定义对象和数据库表之间的映射,实现了对象的持久化。 3. MyBatis:MyBatis是一个简单的ORM框架,它允许开发者将SQL语句写在XML配置文件或Java注解中,与Java对象进行绑定。MyBatis的优势...
实体类是JPA的核心组成部分,使用JPA进行数据持久化时,需要对实体类进行注解定义。例如,对于用户实体`User`: ```java @Entity @Table(name = "t_user") public class User { @Id @GeneratedValue private int...
Hibernate是一个流行的Java持久化框架,它简化了数据库操作。笔记可能涉及实体映射、配置文件、CRUD操作、HQL(Hibernate查询语言)、关联映射、缓存机制等。通过学习Hibernate,开发者可以避免编写大量繁琐的SQL...
它定义了如何在Java应用中表示和操作持久化对象,通过接口和注解实现数据库访问的抽象层,使得开发者无需直接编写SQL语句,降低了数据库依赖性。 **2. JPA开发手册** JPA开发手册通常会涵盖以下几个核心概念: - **...
2. **@Transient**: 此注解用于标记一个属性不参与数据库的映射,ORM框架如Hibernate会忽略这个属性,不会将其持久化到数据库。 3. **@Autowired** 和 **@Qualifier**: @Autowired用于Spring框架的依赖注入,可以...
Java Persistence API(JPA)是Java平台上的一个标准框架,用于管理和持久化应用程序中的对象到关系数据库。这个“黑马程序员 JPA详解视频教程配套源代码 笔记 jar包 很全的”资源提供了全面的学习材料,包括源代码...