`
js-code
  • 浏览: 95218 次
  • 性别: Icon_minigender_1
  • 来自: 兰州
社区版块
存档分类
最新评论

JPA使用指南 javax.persistence的注解配置

    博客分类:
  • SSH
阅读更多

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包

    JPA规范注解的javax.persistence包 ejb3-persistence.jar

    JPA2.0 javax.persistence src 源码

    JPA2.0 javax.persistence src 源码

    javax.persistence.Entity 的jar包文件

    这是一个javax.persistence.Entity 的jar包文件。有时候创建JPA工程导入EclipseLink库的时候会缺少这种文件,可以选择在库中加入这个jar包即可

    javax.persistence-2.0.0.jar

    javax.persistence-2.0.0.jar 解决Hibernate JPA不兼容问题。

    javax.persistence-2.0.5.jar

    基于git事务82dd749的javax.persistence构建 org.eclipse.persistence/javax.persistence/2.0.5/javax.persistence-2.0.5.jar

    javax.persistence-2.2.1.jar

    基于git事务82dd749的javax.persistence构建 org.eclipse.persistence/javax.persistence/2.2.1/javax.persistence-2.2.1.jar

    hibernate-jpa-2.1-api-1.0.2.Final-API文档-中英对照版.zip

    标签:hibernate、javax、persistence、jpa、api、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,...

    javax.persistence-2.1.1.jar

    基于git事务82dd749的javax.persistence构建 org.eclipse.persistence/javax.persistence/2.1.1/javax.persistence-2.1.1.jar

    javax.persistence-2.2.0-RC1.jar

    基于git事务82dd749的javax.persistence构建 org.eclipse.persistence/javax.persistence/2.2.0-RC1/javax.persistence-2.2.0-RC1.jar

    hibernate-jpa-2.1-api-1.0.2.Final-API文档-中文版.zip

    标签:hibernate、javax、persistence、jpa、api、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和...

    javax.persistence-2.2.0-RC2.jar

    基于git事务82dd749的javax.persistence构建 org.eclipse.persistence/javax.persistence/2.2.0-RC2/javax.persistence-2.2.0-RC2.jar

    Hibernate注解.docx

    (1)使用的均为javax.persistence.Transient包中的注解 (2)不再需要映射文件了 (3)在Hibernate主配置文件中无需指定映射文件了,但需要指定注解的实体类。(springboot这一步也省了) 注解的具体文档在javax....

    SSJ SpringMVC3+JPA2.0(Hibernate4)+FreeMarker

    调试@Test报错javax.persistence.spi.PersistenceUnitInfo.getSharedCacheMode()Ljavax/persistence/SharedCacheMode; 部署正常,求解决方案。谢谢

    javax.persistence-2.1.0-RC1.jar

    基于git事务82dd749的javax.persistence构建 org.eclipse.persistence/javax.persistence/2.1.0-RC1/javax.persistence-2.1.0-RC1.jar

    javax-persistence-api 1.2 src

    JPA1.2 JavaEE 5 从glassfish源码里面拷贝的 稍微做了点改动 主要是将参数泛型化了,比如:Map map -&gt; Map,String&gt; map Class cls --&gt; Class&lt;?&gt; cls 涉及到核心的地方的源码基本没动

    spring-framework-3.0.5.RELEASE-dependencies-5

    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 ...

    spring-framework-3.0.5.RELEASE-dependencies-1

    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 ...

    spring-framework-3.0.5.RELEASE-dependencies-3

    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 ...

    spring-framework-3.0.5.RELEASE-dependencies-2

    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 ...

    spring-framework-3.0.5.RELEASE-dependencies-8

    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 ...

Global site tag (gtag.js) - Google Analytics