我通过GWT使用注释与Gilead公司为休眠时,得到一个错误与一对多的关联 [英] I am getting an error with a oneToMany association when using annotations with gilead for hibernate through gwt

查看:187
本文介绍了我通过GWT使用注释与Gilead公司为休眠时,得到一个错误与一对多的关联的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用吉利德坚持我的实体在我的GWT项目,使用im冬眠注释以及。我的问题是在我的一对多association.this是我的用户类别保存到FileLocations名单

参考

  @Entity
@Table(NAME =yf_user_table)
公共类YFUser实现Serializable {@ID
@GeneratedValue(策略= GenerationType.AUTO)
@Column(NAME =USER_ID,可为空= FALSE)
私人诠释用户id;
@Column(名称=用户名)
私人字符串用户名;
@Column(NAME =密码)
私人字符串密码;
@Column(NAME =电子邮件)
私人字符串电子邮件;

@OneToMany(的cascade = CascadeType.ALL,取= FetchType.LAZY)
    @JoinColumn(NAME =USER_ID)
    私人列表fileLocations =新的ArrayList();

这是我的文件位置类

  @Entity
@Table(NAME =fileLocationTable)
公共类FileLocation实现Serializable {@ID
@GeneratedValue(策略= GenerationType.AUTO)
@Column(NAME =locationId,可更新=假,可为空= FALSE)
私人诠释ieId;
@Column(名称=位置)
私人字符串位置;

@ManyToOne(取= FetchType.LAZY)
    @JoinColumn(NAME =USER_ID,可为空= FALSE)
    私人YFUser uploadedUser;

当我在一个正常的桌面应用程序,坚持这个数据,它工作正常,创建表,我可以添加和存储数据到它。但是当我试着坚持我的GWT应用程序中的数据我得到的错误,我会告诉他们低。这是一个扩展PersistentRemoteService我ServiceImpl类。

 公共类TestServiceImpl扩展PersistentRemoteService实现TestService的{公共静态最后弦乐SESSION_USER =UserWithinSession;公共TestServiceImpl(){    HibernateUtil的UTIL =新的HibernateUtil();
        util.setSessionFactory(com.example.server.HibernateUtil
                .getSessionFactory());    PersistentBeanManager PBM =新PersistentBeanManager();
    pbm.setPersistenceUtil(UTIL);
    pbm.setProxyStore(新StatelessProxyStore());    setBeanManager(PBM);
}    @覆盖
公共字符串registerUser(字符串的用户名,密码字符串,字符串电子邮件){
    会话的会话= com.example.server.HibernateUtil.getSessionFactory()的getCurrentSession()。
    session.beginTransaction();    YFUser NEWUSER =新YFUser();
    newUser.setUsername(用户名); newUser.setPassword(密码); newUser.setEmail(电子邮件);    session.save(NEWUSER);
    session.getTransaction()提交()。    返回感谢您注册+用户名;}

这是,即时通讯正在错误。该错误消失,当我删除我的onetoManyRelationship并建立我的会话工厂时,我把它,它处于休眠buildsessionfactory的生产线使用率它抛出此异常。我休眠UTIL类也可以。这是错误java.lang.NoSuchMethodError:javax.persistence.OneToMany.orphanRemoval()z

  2010年3月24日下午10时03分22秒org.hibernate.cfg.annotations.Version< clinit>
INFO:Hibernate注解3.5.0-β-4
2010年3月24日下午10时03分22秒org.hibernate.cfg.Environment中< clinit>
INFO:Hibernate的3.5.0-β-4
2010年3月24日下午10时03分22秒org.hibernate.cfg.Environment中< clinit>
INFO:没有的hibernate.properties找到
2010年3月24日下午10时03分22秒org.hibernate.cfg.Environment中buildByte codeProvider
INFO:字节code供应商名称:Javassist进行
2010年3月24日下午10时03分22秒org.hibernate.cfg.Environment中< clinit>
INFO:使用JDK 1.4的java.sql.Timestamp处理
2010年3月24日下午10时03分22秒org.hibernate.annotations.common.Version< clinit>
INFO:Hibernate的注解下议院3.2.0-SNAPSHOT
2010年3月24日下午10时03分22秒org.hibernate.cfg.Configuration配置
INFO:从资源配置:/hibernate.cfg.xml
2010年3月24日下午10时03分22秒org.hibernate.cfg.Configuration getConfigurationInputStream
INFO:配置资源:/hibernate.cfg.xml
2010年3月24日下午10时03分22秒org.hibernate.cfg.Configuration doConfigure
信息:已配置的SessionFactory:空
2010年3月24日下午10时03分22秒org.hibernate.cfg.search.HibernateSearchEventListenerRegister enableHibernateSearch
INFO:无法找到org.hibernate.search.event.FullTextIndexEventListener类路径上。 Hibernate Search的未启用。
2010年3月24日下午10时03分22秒org.hibernate.cfg.AnnotationBinder bindClass
INFO:从注解的类绑定实体:com.example.client.Entity1
2010年3月24日下午10时03分22秒org.hibernate.cfg.annotations.EntityBinder bindTable
信息:绑定实体com.example.client.Entity1上表entityTable1
2010年3月24日下午10时03分22秒org.hibernate.cfg.AnnotationBinder bindClass
INFO:从注解的类绑定实体:com.example.client.YFUser
2010年3月24日下午10时03分22秒org.hibernate.cfg.annotations.EntityBinder bindTable
信息:上表yf_user_table绑定实体com.example.client.YFUser
初始创建的SessionFactory failed.java.lang.NoSuchMethodError:javax.persistence.OneToMany.orphanRemoval()z
[WARN]嵌套在javax.servlet.ServletException:INIT:
java.lang.ExceptionInInitializerError
在com.example.server.HibernateUtil< clinit>(HibernateUtil.java:38)
在com.example.server.TestServiceImpl<&初始化GT;(TestServiceImpl.java:29)
在sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
在sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
在java.lang.reflect.Constructor.newInstance(Constructor.java:513)
在java.lang.Class.newInstance0(Class.java:355)
在java.lang.Class.newInstance(Class.java:308)
在org.mortbay.jetty.servlet.Holder.newInstance(Holder.java:153)
在org.mortbay.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:339)
在org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:463)
在org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
在org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
在org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
在org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)
在org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
在org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
在org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49)
在org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
在org.mortbay.jetty.Server.handle(Server.java:324)
在org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
在org.mortbay.jetty.HttpConnection $ RequestHandler.content(HttpConnection.java:843)
在org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647)
在org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
在org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
在org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
在org.mortbay.thread.QueuedThreadPool $ PoolThread.run(QueuedThreadPool.java:488)
java.lang.NoSuchMethodError:引起javax.persistence.OneToMany.orphanRemoval()z
在org.hibernate.cfg.AnnotationBinder.processElementAnnotations(AnnotationBinder.java:1642)
在org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:772)
在org.hibernate.cfg.AnnotationConfiguration.processArtifactsOfType(AnnotationConfiguration.java:629)
在org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:350)
在org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1373)
在org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:973)
在com.example.server.HibernateUtil< clinit>(HibernateUtil.java:33)
... 26更多
[WARN]嵌套在java.lang.ExceptionInInitializerError:
java.lang.NoSuchMethodError:javax.persistence.OneToMany.orphanRemoval()z
在org.hibernate.cfg.AnnotationBinder.processElementAnnotations(AnnotationBinder.java:1642)
在org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:772)
在org.hibernate.cfg.AnnotationConfiguration.processArtifactsOfType(AnnotationConfiguration.java:629)
在org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:350)
在org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1373)
在org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:973)
在com.example.server.HibernateUtil< clinit>(HibernateUtil.java:33)
在com.example.server.TestServiceImpl<&初始化GT;(TestServiceImpl.java:29)
在sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
在sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
在java.lang.reflect.Constructor.newInstance(Constructor.java:513)
在java.lang.Class.newInstance0(Class.java:355)
在java.lang.Class.newInstance(Class.java:308)
在org.mortbay.jetty.servlet.Holder.newInstance(Holder.java:153)
在org.mortbay.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:339)
在org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:463)
在org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
在org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
在org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
在org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)
在org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
在org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
在org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49)
在org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
在org.mortbay.jetty.Server.handle(Server.java:324)
在org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
在org.mortbay.jetty.HttpConnection $ RequestHandler.content(HttpConnection.java:843)
在org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647)
在org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
在org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
在org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
在org.mortbay.thread.QueuedThreadPool $ PoolThread.run(QueuedThreadPool.java:488)


解决方案

删除 EJB3-persistance.jar ,并从构建路径中删除它解决我的问题,它可能工作了你。

另外,不要忘了添加休眠-JPA-2.0-API 1.0.0.Final.jar 来构建路径。

I'm using Gilead to persist my entities in my GWT project, im using hibernate annotations aswell. my problem is on my onetomany association.this is my User class that holds a reference to a list of FileLocations

@Entity
@Table(name = "yf_user_table")
public class YFUser implements Serializable {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "user_id",nullable = false)
private int userId;
@Column(name = "username")
private String username;
@Column(name = "password")
private String password;
@Column(name = "email")
private String email;

@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY) @JoinColumn(name="USER_ID") private List fileLocations = new ArrayList();

This is my file location class

@Entity
@Table(name = "fileLocationTable")
public class FileLocation implements Serializable {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "locationId", updatable = false, nullable = false)
private int ieId;
@Column (name = "location")
private String location;

@ManyToOne(fetch=FetchType.LAZY) @JoinColumn(name="USER_ID", nullable=false) private YFUser uploadedUser;

When i persist this data in a normal desktop application, it works fine , creates the tables and i can add and store data to it. but when i try to persist the data in my gwt application i get errors i will show them lower. this is my ServiceImpl class that extends PersistentRemoteService.

public class TestServiceImpl extends PersistentRemoteService implements TestService {

public static final String SESSION_USER = "UserWithinSession";

public TestServiceImpl(){

    HibernateUtil util = new HibernateUtil();
        util.setSessionFactory(com.example.server.HibernateUtil
                .getSessionFactory());

    PersistentBeanManager pbm = new PersistentBeanManager();
    pbm.setPersistenceUtil(util);
    pbm.setProxyStore(new StatelessProxyStore());

    setBeanManager(pbm);
}

    @Override
public String registerUser(String username, String password, String email) {
    Session session = com.example.server.HibernateUtil.getSessionFactory().getCurrentSession();
    session.beginTransaction();

    YFUser newUser = new YFUser();
    newUser.setUsername(username);newUser.setPassword(password);newUser.setEmail(email);

    session.save(newUser);
    session.getTransaction().commit();

    return "Thank you For registering "+ username;

}

this is the error that im am getting. the error goes away when i remove my onetoManyRelationship and builds my session factory when i put it in , it on the line of buildsessionfactory in hibernate Util that it throws this exception. my hibernate util class is ok also. this is the error java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z

Mar 24, 2010 10:03:22 PM org.hibernate.cfg.annotations.Version <clinit>
INFO: Hibernate Annotations 3.5.0-Beta-4
Mar 24, 2010 10:03:22 PM org.hibernate.cfg.Environment <clinit>
INFO: Hibernate 3.5.0-Beta-4
Mar 24, 2010 10:03:22 PM org.hibernate.cfg.Environment <clinit>
INFO: hibernate.properties not found
Mar 24, 2010 10:03:22 PM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: Bytecode provider name : javassist
Mar 24, 2010 10:03:22 PM org.hibernate.cfg.Environment <clinit>
INFO: using JDK 1.4 java.sql.Timestamp handling
Mar 24, 2010 10:03:22 PM org.hibernate.annotations.common.Version <clinit>
INFO: Hibernate Commons Annotations 3.2.0-SNAPSHOT
Mar 24, 2010 10:03:22 PM org.hibernate.cfg.Configuration configure
INFO: configuring from resource: /hibernate.cfg.xml
Mar 24, 2010 10:03:22 PM org.hibernate.cfg.Configuration getConfigurationInputStream
INFO: Configuration resource: /hibernate.cfg.xml
Mar 24, 2010 10:03:22 PM org.hibernate.cfg.Configuration doConfigure
INFO: Configured SessionFactory: null
Mar 24, 2010 10:03:22 PM org.hibernate.cfg.search.HibernateSearchEventListenerRegister             enableHibernateSearch
INFO: Unable to find org.hibernate.search.event.FullTextIndexEventListener on the     classpath. Hibernate Search is not enabled.
Mar 24, 2010 10:03:22 PM org.hibernate.cfg.AnnotationBinder bindClass
INFO: Binding entity from annotated class: com.example.client.Entity1
Mar 24, 2010 10:03:22 PM org.hibernate.cfg.annotations.EntityBinder bindTable
INFO: Bind entity com.example.client.Entity1 on table entityTable1
Mar 24, 2010 10:03:22 PM org.hibernate.cfg.AnnotationBinder bindClass
INFO: Binding entity from annotated class: com.example.client.YFUser
Mar 24, 2010 10:03:22 PM org.hibernate.cfg.annotations.EntityBinder bindTable
INFO: Bind entity com.example.client.YFUser on table yf_user_table
Initial SessionFactory creation failed.java.lang.NoSuchMethodError:     javax.persistence.OneToMany.orphanRemoval()Z
[WARN] Nested in javax.servlet.ServletException: init:
java.lang.ExceptionInInitializerError
at com.example.server.HibernateUtil.<clinit>(HibernateUtil.java:38)
at com.example.server.TestServiceImpl.<init>(TestServiceImpl.java:29)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at   sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39 )
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)
at org.mortbay.jetty.servlet.Holder.newInstance(Holder.java:153)
at org.mortbay.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:339)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:463)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:324)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)
Caused by: java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z
at  org.hibernate.cfg.AnnotationBinder.processElementAnnotations(AnnotationBinder.java:1642)
at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:772)
at org.hibernate.cfg.AnnotationConfiguration.processArtifactsOfType(AnnotationConfiguration.java:629)
at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:350)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1373)
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:973)
at com.example.server.HibernateUtil.<clinit>(HibernateUtil.java:33)
... 26 more
[WARN] Nested in java.lang.ExceptionInInitializerError:
java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z
at    org.hibernate.cfg.AnnotationBinder.processElementAnnotations(AnnotationBinder.java:1642)
at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:772)
at  org.hibernate.cfg.AnnotationConfiguration.processArtifactsOfType(AnnotationConfiguration.java:629)
at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:350)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1373)
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:973)
at com.example.server.HibernateUtil.<clinit>(HibernateUtil.java:33)
at com.example.server.TestServiceImpl.<init>(TestServiceImpl.java:29)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at  sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)
at org.mortbay.jetty.servlet.Holder.newInstance(Holder.java:153)
at org.mortbay.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:339)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:463)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:324)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)

解决方案

Deleting ejb3-persistance.jar and removing it from build path solved my problem, it may work for you too.

Also don't forget to add hibernate-jpa-2.0-api-1.0.0.Final.jar to your build path.

这篇关于我通过GWT使用注释与Gilead公司为休眠时,得到一个错误与一对多的关联的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆