设为首页 加入收藏

TOP

jpa的双向一对多和双向一对一关联关系(一)
2015-07-20 17:44:20 来源: 作者: 【 】 浏览:7
Tags:jpa 双向 一对一 关联 关系

在分享之前先给大家看两个异常,应该说这一类的异常还是很常见的,主要原因是jar包冲突

异常1:

java.lang.NoSuchFieldError: INSTANCE
	at org.hibernate.type.BasicTypeRegistry.
  
   (BasicTypeRegistry.java:94)
	at org.hibernate.type.TypeResolver.
   
    (TypeResolver.java:59) at org.hibernate.cfg.Configuration.
    
     (Configuration.java:250) at org.hibernate.cfg.Configuration.
     
      (Configuration.java:302) at org.hibernate.cfg.AnnotationConfiguration.
      
       (AnnotationConfiguration.java:108) at org.hibernate.ejb.Ejb3Configuration.
       
        (Ejb3Configuration.java:107) at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:124) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:52) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:34) at org.lxh.util.JpaUtil.
        
         (JpaUtil.java:10) at org.lxh.test.Test.testInsert(Test.java:20) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
        
       
      
     
    
   
  

这个异常主要出现在hibernate3.6或更高版本,解决办法是删除hibernate-annotations.jar和hibernate-commons-annotations.jar

因为hibernate3.6包里已经包含以上两包了


异常2:

Caused by: java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z  
    at org.hibernate.cfg.AnnotationBinder.processElementAnnotations(AnnotationBinder.java:1912)  
    at org.hibernate.cfg.AnnotationBinder.processIdPropertiesIfNotAlready(AnnotationBinder.java:796)  
    at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:707)  
    at org.hibernate.cfg.Configuration$MetadataSourceQueue.processAnnotatedClassesQueue(Configuration.java:4035)  
    at org.hibernate.cfg.Configuration$MetadataSourceQueue.processMetadata(Configuration.java:3989)  
    at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1398)  
    at org.hibernate.cfg.Configuration.buildMappings(Configuration.java:1375)  
    at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:717)  
    at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:188)  
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1514)  
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452)  
    ... 65 more

该异常也是jar包冲突导致,主要还是出现在hibernate3.6或更高版本,解决办法是删除ejb3-persistence.jar

一 一对多关联关系

异常的问题说了,下面进入正题,昨天研究了jpa的基本使用,这次分享下jpa的一对多和一对一关联关系,这一部分也和hibernate大体类似,只是在配置上稍有差异。一对多是很常见的关联关系,在jpa中一对多关联关系由多的一方维护,下面以员工和部门为例来表现一对多的这种关系

1. 部门的员工的实体类

package org.lxh.info;

import java.util.*;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import java
首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇ZOJ 3816 Generalized Palindromi.. 下一篇ZOJ 3811 Untrusted Patrol 并查集

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C++中智能指针的性能 (2025-12-25 03:49:29)
·如何用智能指针实现c (2025-12-25 03:49:27)
·如何在 C 语言中管理 (2025-12-25 03:20:14)
·C语言和内存管理有什 (2025-12-25 03:20:11)
·为什么C语言从不被淘 (2025-12-25 03:20:08)