简体   繁体   English

Hibernate异常映射实体

[英]Hibernate exception mapping an entity

I had this project and I have to include another entity with an @OneToMany dependency,the class name is empresa (enterprise), but when the code is running I get this exception. 我有这个项目,我必须包含另一个具有@OneToMany依赖项的实体,该类的名称为empresa(企业),但是当代码运行时,出现此异常。

br.com.caelum.vraptor.InterceptionException: org.hibernate.AnnotationException: mappedBy reference an unknown target entity property: com.assist.model.entity.Colaborador.Empresa in com.assist.model.entity.Empresa.colaboradores br.com.caelum.vraptor.interceptor.StepInvoker.invokeMethod(StepInvoker.java:69) br.com.caelum.vraptor.interceptor.StepInvoker.tryToInvoke(StepInvoker.java:55) br.com.caelum.vraptor.interceptor.StepInvoker$Proxy$_$$ WeldClientProxy.tryToInvoke(Unknown Source) br.com.caelum.vraptor.interceptor.InterceptorExecutor.executeAround(InterceptorExecutor.java:75) br.com.caelum.vraptor.interceptor.InterceptorExecutor$Proxy$ $$ WeldClientProxy.executeAround(Unknown Source) br.com.caelum.vraptor.interceptor.AspectStyleInterceptorHandler.execute(AspectStyleInterceptorHandler.java:85) br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:83) br.com.caelum.vraptor.core.DefaultInterceptorStack.start(DefaultInterceptorStack.java:93) br.com.caelum.vra br.com.caelum.vraptor.InterceptionException:org.hibernate.AnnotationException:映射通过引用未知目标实体属性:com.assist.model.entity.Colaborador.Empresa在com.assist.model.entity.Empresa.colaboradores br.com中.caelum.vraptor.interceptor.StepInvoker.invokeMethod(StepInvoker.java:69)br.com.caelum.vraptor.interceptor.StepInvoker.tryToInvoke(StepInvoker.java:55)br.com.caelum.vraptor.interceptor.StepInvoker $ Proxy $ _ $$ WeldClientProxy.tryToInvoke(未知来源)br.com.caelum.vraptor.interceptor.InterceptorExecutor.executeAround(InterceptorExecutor.java:75)br.com.caelum.vraptor.interceptor.InterceptorExecutor $ Proxy $ $$ WeldClientProxy.executeAround (未知来源)br.com.caelum.vraptor.interceptor.AspectStyleInterceptorHandler.execute(AspectStyleInterceptorHandler.java:85)br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:83)br.com.caelum。 vraptor.core.DefaultInterceptorStack.start(DefaultInterceptorStack.java:93)br.com.caelum.vra ptor.core.DefaultInterceptorStack$Proxy$ $$_WeldClientProxy.start(Unknown Source) br.com.caelum.vraptor.observer.RequestHandlerObserver.handle(RequestHandlerObserver.java:93) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:497) org.jboss.weld.injection.MethodInjectionPoint.invokeOnInstanceWithSpecialValue(MethodInjectionPoint.java:93) org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:266) org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:253) org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:232) org.jboss.weld.event.ObserverNotifier.notifyObserver(ObserverNotifier.java:169) org.jboss.weld.event.ObserverNotifier.notifyObserver(ObserverNotifier.java:165) org.jboss.weld.event.ObserverNotifier.notifyObser ptor.core.DefaultInterceptorStack $ Proxy $ $$ _ WeldClientProxy.start(未知源)br.com.caelum.vraptor.observer.RequestHandlerObserver.handle(RequestHandlerObserver.java:93)sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)sun。 Reflection.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)java.lang.reflect.Method.invoke(Method.java:497)org.jboss.weld.injection。 MethodInjectionPoint.invokeOnInstanceWithSpecialValue(MethodInjectionPoint.java:93)org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:266)org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserversImpl.java:253) weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:232)org.jboss.weld.event.ObserverNotifier.notifyObserver(ObserverNotifier.java:169)org.jboss.weld.event.ObserverNotifier.notifyObserver(ObserverNotifier.java:165) org.jboss.weld.event.ObserverNotifier.notifyObser vers(ObserverNotifier.java:119) org.jboss.weld.event.ObserverNotifier.fireEvent(ObserverNotifier.java:112) org.jboss.weld.event.EventImpl.fire(EventImpl.java:83) br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:123) vers(ObserverNotifier.java:119)org.jboss.weld.event.ObserverNotifier.fireEvent(ObserverNotifier.java:112)org.jboss.weld.event.EventImpl.fire(EventImpl.java:83)br.com.caelum。 vraptor.VRaptor.doFilter(VRaptor.java:123)

I dont know how to fix,and what is causing this, I'm pretty new in java and hibernate, here is my classes. 我不知道如何解决,这是什么原因,我在java和hibernate中是很新的,这是我的课程。

entity Colaborador = 实体合作伙伴=

 @SkipSerialization @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "Id_Empresa", nullable = false, foreignKey = @ForeignKey(name = "FK_COLABORADOR_EMPRESA")) public Empresa empresa; 

Entity Empresa 实体企业

@OneToMany(mappedBy = "empresa", targetEntity = Colaborador.class, cascade = CascadeType.ALL, orphanRemoval = true) private Set colaboradores; @OneToMany(mappedBy =“ empresa”,targetEntity = Colaborador.class,级联= CascadeType.ALL,orphanRemoval = true)私有Set colaboradores;

One empresa could have many colaboradores. 一个企业可能有许多colaboradores。

First of all, create the class and put mapping class in hibernate configuration. 首先,创建类并将映射类置于休眠配置中。 Ex: 例如:

<hibernate-configuration>

    <session-factory>
        <property name="hibernate.connection.url">${conn-string}</property>
        <property name="hibernate.connection.username">${db-user}</property>
        <property name="hibernate.connection.password">${db-pass}</property>
        <property name="hibernate.dialect">com.ftu.utils.FtuCustomOracleDialect</property>
        <property name="hibernate.connection.driver_class">oracle.jdbc.OracleDriver</property>
        <property name="hibernate.current_session_context_class">thread</property>

        <property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
        <property name="hibernate.c3p0.min_size">1</property>
        <property name="hibernate.c3p0.max_size">50</property>
        <property name="hibernate.c3p0.timeout">30000</property>
        <property name="hibernate.c3p0.checkoutTimeout">30000</property>
        <property name="hibernate.c3p0.max_statements">1</property>
        <property name="hibernate.c3p0.idle_test_period">100</property>

        <property name="show_sql">false</property>
        <property name="format_sql">true</property>

        <mapping class="com.assist.model.entity.Empresa " />
    </session-factory>
</hibernate-configuration>

Then you do the relashionship @oneToMany. 然后,您进行reoneshipship @oneToMany。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM