`
朝陵
  • 浏览: 1693 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

hibernate 3.6中的一个小bug,javax.persistence.OneToMany.orphanRemoval()Z

阅读更多
[size=medium;][size=x-small]    虽然说hibernate现在支持了annotation注解方式进行映射,但是仍然有的诸多的不完善与不稳定。
    特别是最近在开发项目的过程中,居然还出现莫名奇妙的错误,一开整的人都差点崩溃了!最后,测试出来,居然是annotation的支持出问题。
    而问题更是让人崩溃呢!在java项目中使用annotation是没有任何问题的,可是一改用web项目时,就一定报错。这时只能改用xml来配置了!
    其中之一的bug:多对一(@ManyToOne)
    例子如下:
[/size] [/size]

java代码
User类代码

package hibernater.model;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

@Table(name="t_user")
@Entity
public class User {

private int id;
private String name;

@Id
@GeneratedValue
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}


Group类代码:

package hibernater.model;

import java.util.HashSet;
import java.util.Set;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.Table;

@Table(name="t_group")
@Entity
public class Group {

private int id;
private String name;
private Set groupSet=new HashSet();



@OneToMany
@JoinColumn(name="groupId")
public Set getGroupSet() {
return groupSet;
}
public void setGroupSet(Set groupSet) {
this.groupSet = groupSet;
}
@Id
@GeneratedValue
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}

}

Test测试类:

package com.test;

import java.util.Date;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;

public class Test {

private static SessionFactory sf;

@Before
public static void before() {
sf = new AnnotationConfiguration().configure().buildSessionFactory();
}

@Test
public void testSchemaExport() {

new SchemaExport(new AnnotationConfiguration().configure()).create(
true, true);

}

@After
public static void after() {
sf.close();
}

}


其他如hibernate.cfg.xml配置都是正确的,如果这是在java项目中执行时没有问题的,
可是如果放在web项目中,就一定会报如下错误:

java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z

测试了很多的方法,应该可以证明这是hibernate3.6中annotation的一个bug


分享到:
评论
1 楼 haojie_java_ms 2011-12-01  
应该不算是bug,只是发生冲突而已

相关推荐

    javax.persistence.jar

    javax.persistence.OneToMany.class javax.persistence.OneToOne.class javax.persistence.OptimisticLockException.class javax.persistence.OrderBy.class javax.persistence.OrderColumn.class javax/persistence...

    javax.persistence-2.0.0.jar 包

    Java持久化API(Java Persistence API,简称JPA)是Java平台上的一个标准,用于管理关系数据库中的数据。它为Java应用程序提供了一种对象/关系映射(ORM)工具,使得开发者可以使用面向对象的方式来操作数据库,而...

    javax.persistence.Entity 的jar包文件

    在更现代的项目中,通常会使用JPA 2.x,对应的jar包可能是`javax.persistence-api.jar`或者其他JPA供应商的实现库,如Hibernate的`hibernate-entitymanager.jar`。如果项目依赖EclipseLink,确保添加了完整的Eclipse...

    javax.persistence.jar.zip

    【javax.persistence.jar.zip】是一个包含Java持久化API(Java Persistence API,简称JPA)的压缩文件,这个API是Java EE(Enterprise Edition)平台的核心组成部分,主要用于处理Java对象与数据库之间的映射关系,...

    JPA规范注解的javax.persistence包

    虽然现在的JPA实现通常使用Hibernate、EclipseLink等开源框架,但`ejb3-persistence.jar`在历史发展中起到了关键作用,它是JPA规范的一个早期实现。 通过使用JPA规范的注解,开发者可以轻松地在Java应用程序中管理...

    javax.persistence-api-2.2.jar

    javax.persistence-api-2.2.jar框架包,仅供大家学习使用,谢谢!

    ejb3-persistence(找不到javax.persistence.Entity问题解决)

    “Caused by: java.lang.ClassNotFoundException: javax.persistence.Entity”,查找资料发现是缺少jar包. 添加此包就OK了。 更多说明:https://blog.csdn.net/kingmax54212008/article/details/82762624

    javax.persistence

    是一个javax.persistence java资源注解

    javax.persistence-2.0.0.jar

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

    JPA2.0 javax.persistence src 源码

    Java Persistence API(JPA)是Java平台上的一个标准,用于管理关系数据库中的对象-关系映射(ORM)。JPA 2.0是该规范的一个重要版本,它在JPA 1.0的基础上引入了许多增强功能,提高了开发人员的生产力和数据库操作...

    standalong javax.persistence包

    下载后,执行:java -jar glassfish-persistence-installer-v2.1-b23.jar 把得到的toplink-essentials.jar放在classpath下就可以用了! 在这里可以找到原码:...

    com.springsource.javax.persistence-2.0.0.jar.zip

    《深入理解SpringSource javax.persistence-2.0.0.jar及其在Maven中的应用》 在Java开发领域,持久层框架的使用是不可或缺的,而javax.persistence则是Java持久化API(JPA)的核心部分,用于规范对象关系映射(ORM...

    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

    javax persistence规范注解的包.rar

    在Java编程领域,`javax.persistence`是Java持久化API(Java Persistence API)的一部分,这是一个用于管理关系数据库的框架。这个规范定义了一组注解,使得开发者可以方便地将对象持久化到关系数据库中,而无需编写...

    javax.jms.jar

    Classes contained in javax.jms.jar: javax.transaction.xa.XAResource.class javax.jms.BytesMessage.class javax.jms.Message.class javax.jms.JMSException.class javax.jms.Destination.class javax.jms....

    javax.jms.jar下载

    javax.jms.BytesMessage.class javax.jms.Connection.class javax.jms.ConnectionConsumer.class javax.jms.ConnectionFactory.class javax.jms.ConnectionMetaData.class javax.jms.DeliveryMode.class javax.jms....

    javax.ejb.jar下载

    Files contained in javax.ejb.jar: META-INF/MANIFEST.MF javax.ejb.AccessLocalException.class javax.ejb.AccessTimeout.class javax.ejb.ActivationConfigProperty.class javax.ejb.AfterBegin.class javax....

Global site tag (gtag.js) - Google Analytics