JPA注解持久化类很方便,需要jar包:ejb3-persistence.jar。我用以下三个类来说明用法。
转载:http://67566894.iteye.com/blog/659829
@SuppressWarnings("serial")
@Entity
@Table(name="T_X")
public class X implements Serializable
{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
@Column(length=32)
private String name;
@Temporal(TemporalType.TIMESTAMP)
private Date date;
@OneToOne(cascade = CascadeType.ALL, mappedBy = "x")
private A a;
}
@SuppressWarnings("serial")
@Entity
@Table(name="T_A")
public class A implements Serializable
{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "a", fetch = FetchType.EAGER)
private List<B> b = new ArrayList<B>();
@OneToOne()
@JoinColumn(name = "x_Id")
private X x;
}
@SuppressWarnings("serial")
@Entity
public class B implements Serializable{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
protected int id;
@ManyToOne()
@JoinColumn(name = "a_id")
protected A a;
}
要注意的是:fetch = FetchType.EAGER这句话在一个类里面只能出现一次,出现两次就会报错“cannot simultaneously fetch multiple bags”,要把其他的改为fetch = FetchType.LAZY延迟加载就可以了。听说把List集合改为Set也能解决这个错误。
其他要点:
1、@Table(name="T_X")这句话可以不写,不写就已类名作为表名
2、如果想让两个类的属性生成一个数据表,在一个类里这样加入另一个类即可: @Embedded
private C c;
3、如果想要一个类继承另一个类的所有属性,则在父类里这样写:
@SuppressWarnings("serial")
@Entity
@MappedSuperclass //增加这一行
并把父类的所有属性的private改为protected即可
分享到:
相关推荐
虽然现在的JPA实现通常使用Hibernate、EclipseLink等开源框架,但`ejb3-persistence.jar`在历史发展中起到了关键作用,它是JPA规范的一个早期实现。 通过使用JPA规范的注解,开发者可以轻松地在Java应用程序中管理...
当你在程序运行时遇到“javax.persistence”问题,这通常意味着你的项目缺少了`javax.persistence.jar`库,导致无法执行JPA相关的操作。解决这个问题的最直接方法就是将提供的压缩包导入到你的项目类路径中,确保JPA...
如果你在创建基于JPA的工程时,EclipseLink库中缺少`javax.persistence.Entity`相关的类,那么可能需要添加包含这些类的jar包,例如`ejb3-persistence.jar`。 **ejb3-persistence.jar** 文件很可能包含了JPA 1.0或...
【javax.persistence.jar.zip】是一个包含Java持久化API(Java Persistence API,简称JPA)的压缩文件,这个API是Java EE(Enterprise Edition)平台的核心组成部分,主要用于处理Java对象与数据库之间的映射关系,...
通过`Persistence.createEntityManagerFactory()`方法,我们可以根据配置文件创建工厂。 4. **查询语言(JPQL)**:JPA提供了Java Persistence Query Language,一种面向对象的查询语言,类似于SQL,但操作的是对象...
`EntityManagerFactory`是创建`EntityManager`实例的工厂,可以通过`Persistence.createEntityManagerFactory()`来获取。 2. **查询语言**:JPA 2.0引入了JPQL(Java Persistence Query Language),这是一种面向...
javax.persistence-2.0.0.jar 解决Hibernate JPA不兼容问题。
在Java编程领域,`javax.persistence`是Java持久化API(Java Persistence API)的一部分,这是一个用于管理关系数据库的...如果你遇到`javax.persistence`问题,记得检查项目依赖是否完整,并确保正确配置了相关注解。
在Java开发领域,持久层框架的使用是不可或缺的,而javax.persistence则是Java持久化API(JPA)的核心部分,用于规范对象关系映射(ORM)的标准。SpringSource作为一个知名的开源项目,提供了对JPA的全面支持。本文...
基于git事务82dd749的javax.persistence构建 org.eclipse.persistence/javax.persistence/2.0.5/javax.persistence-2.0.5.jar
基于git事务82dd749的javax.persistence构建 org.eclipse.persistence/javax.persistence/2.2.1/javax.persistence-2.2.1.jar
解压后,我们可以期待找到JPA的源代码目录结构,包括核心API接口、实现类、注解以及其他相关的配置文件。通过阅读和分析这些代码,开发者可以深入了解JPA的实现细节,这对于进行扩展、定制或者调试具有很大帮助。 ...
`javax.persistence.EntityListener`是JPA中用于定义实体监听器的接口,它允许在实体生命周期的特定事件上执行操作,比如在保存或删除实体时。 在Java应用中,NoClassDefFoundError通常由以下原因引起: 1. **依赖...
标签:hibernate、javax、persistence、jpa、api、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,...
基于git事务82dd749的javax.persistence构建 org.eclipse.persistence/javax.persistence/2.1.1/javax.persistence-2.1.1.jar
基于git事务82dd749的javax.persistence构建 org.eclipse.persistence/javax.persistence/2.2.0-RC1/javax.persistence-2.2.0-RC1.jar
基于git事务82dd749的javax.persistence构建 org.eclipse.persistence/javax.persistence/2.2.0-RC2/javax.persistence-2.2.0-RC2.jar
标签:hibernate、javax、persistence、jpa、api、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和...
import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.ManyToMany; import javax.persistence.Table; @Entity @Table(name...
在EJB 3.1中,实体bean主要通过JPA(Java Persistence API)进行管理,允许开发者使用ORM(对象关系映射)来处理数据库操作。 3. **消息驱动bean(Message-Driven Beans,MDB)**:专门用于处理JMS(Java Message ...