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规范注解的javax.persistence包 ejb3-persistence.jar
这是一个javax.persistence.Entity 的jar包文件。有时候创建JPA工程导入EclipseLink库的时候会缺少这种文件,可以选择在库中加入这个jar包即可
`EntityManagerFactory`是创建`EntityManager`实例的工厂,可以通过`Persistence.createEntityManagerFactory()`来获取。 2. **查询语言**:JPA 2.0引入了JPQL(Java Persistence Query Language),这是一种面向...
javax.persistence-2.0.0.jar 解决Hibernate 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
标签: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
标签:hibernate、javax、persistence、jpa、api、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和...
基于git事务82dd749的javax.persistence构建 org.eclipse.persistence/javax.persistence/2.2.0-RC2/javax.persistence-2.2.0-RC2.jar
import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.ManyToMany; import javax.persistence.Table; @Entity @Table(name...
(1)使用的均为javax.persistence.Transient包中的注解 (2)不再需要映射文件了 (3)在Hibernate主配置文件中无需指定映射文件了,但需要指定注解的实体类。(springboot这一步也省了) 注解的具体文档在javax....
调试@Test报错javax.persistence.spi.PersistenceUnitInfo.getSharedCacheMode()Ljavax/persistence/SharedCacheMode; 部署正常,求解决方案。谢谢
基于git事务82dd749的javax.persistence构建 org.eclipse.persistence/javax.persistence/2.1.0-RC1/javax.persistence-2.1.0-RC1.jar
JPA1.2 JavaEE 5 从glassfish源码里面拷贝的 稍微做了点改动 主要是将参数泛型化了,比如:Map map -> Map,String> map Class cls --> Class<?> cls 涉及到核心的地方的源码基本没动
javax.persistence.* 包是Java Persistence API(JPA)的一部分,JPA允许开发者以面向对象的方式操作数据库。EntityManager接口提供了操作实体(数据库表映射的Java类)的方法,EntityTransaction接口则管理事务。...
在实际应用中,我们还需要配置Hibernate的映射文件(XML方式)或者使用JPA的注解配置(如上所示)。通过这些配置,Hibernate会自动处理数据的插入、更新和查询等操作,使得对象关系映射变得更加便捷。 在开发过程中...
javax.persistence javax.portlet javax.resource javax.servlet javax.transaction javax.validation javax.xml.bind javax.xml.rpc javax.xml.soap javax.xml.stream javax.xml.ws net.sourceforge.cglib ...
javax.persistence javax.portlet javax.resource javax.servlet javax.transaction javax.validation javax.xml.bind javax.xml.rpc javax.xml.soap javax.xml.stream javax.xml.ws net.sourceforge.cglib ...