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
JPA2.0 javax.persistence src 源码
这是一个javax.persistence.Entity 的jar包文件。有时候创建JPA工程导入EclipseLink库的时候会缺少这种文件,可以选择在库中加入这个jar包即可
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
(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 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 ...
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 ...
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 ...