私は4つのテーブルkode_pos、korwil、user、wafatを持っています。 Korwilクラスでは、利用者からの外部キーを押しながらkorwilクラス@OneToOneと@OneToManyで2マッピング、双方向のhibernate - org.hibernate.AnnotationException:未知のmappedBy in:エラー
が、私はこのエラー
組織を得たある意味kode_pos、 に主キーを与えます。 hibernate.AnnotationException:org.ppbni.splatter.model.UserAdmin.korwil、未知の参照プロパティ:不明なmappedBy org.ppbni.splatter.model.Korwil.useradmin`私は、アプリケーションを実行〜
これはthe erd、
これは私のkode_posクラスで、これは私のユーザークラスがある
package org.ppbni.splatter.model;
import java.io.Serializable;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.MapsId;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.CascadeType;
@SuppressWarnings("serial")
@Entity
@Table(name="korwil")
public class Korwil implements Serializable{
@Id
@Column(name="kode_korwil", unique=true, nullable=false)
private String kode_korwil;
@Column(name="nama_korwil")
private String nama_korwil;
@Column(name="alias_jabatan")
private String alias_jabatan;
@Column(name="jabatan_korwil")
private String jabatan_korwil;
@OneToMany(fetch = FetchType.LAZY, mappedBy="korwil")
private Set<KodePos> kodepos;
@OneToOne
@MapsId
@JoinColumn(name="no_dana")
private UserAdmin useradmin;
/**Setter and Getter Methods**/
}
package org.ppbni.splatter.model;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Entity;
import javax.persistence.MapsId;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;
import javax.persistence.ManyToOne;
import javax.persistence.CascadeType;
@SuppressWarnings("serial")
@Entity
@Table(name="kode_pos")
public class KodePos implements Serializable{
@Id
@Column(name="kode_pos", unique=true, nullable=false)
private String kode_pos;
@Column(name="kelurahan")
private String kelurahan;
@Column(name="kecamatan")
private String kecamatan;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="kode_korwil")
private Korwil korwil;
/**Setter and Getter Methods**/
}
これは私のkorwilクラスであり、これは私のwafatクラスは
package org.ppbni.splatter.model;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Entity;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.OneToOne;
import javax.persistence.CascadeType;
@SuppressWarnings("serial")
@Entity
@Table(name="user")
public class UserAdmin implements Serializable{
@Id
@GeneratedValue
@Column(name="no_dana", unique=true, nullable=false)
private String no_dana;
@Column(name="npp")
private String npp;
@Column(name="password")
private String password;
@OneToOne(mappedBy="useradmin", cascade=CascadeType.ALL)
private Wafat wafat;
@OneToOne(mappedBy="useradmin", cascade=CascadeType.ALL)
private Korwil korwil;
/**other field**//
/**setter and gettter methods**/
}
です、
package org.ppbni.splatter.model;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.MapsId;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
@SuppressWarnings("serial")
@Entity
@Table(name="wafat")
public class Wafat implements Serializable{
@Id
@Column(name="kode_wafat", unique=true, nullable=false)
private String kode_wafat;
@Temporal(TemporalType.TIMESTAMP)
@Column(name="tgl_wafat")
private Date tgl_wafat;
@Column(name="usia_wafat")
private int usia_wafat;
@Temporal(TemporalType.TIMESTAMP)
@Column(name="tgl_makam")
private Date tgl_makam;
@Column(name="tempat_makam")
private String tempat_makam;
@OneToOne
@MapsId
@JoinColumn(name="no_dana")
private UserAdmin useradmin;
/**Setter and Getter Methods**/
}
これは、
@SuppressWarnings("deprecation")
@RequestMapping(value="/user/daftar-anggota-ppbni.html")
public ModelAndView userDaftarAnggotaPPBNI(ModelMap model, HttpServletRequest request, HttpServletResponse response)throws Exception{
SessionFactory factory = new Configuration().configure().buildSessionFactory();
Session session = factory.openSession();
String nama = request.getParameter("nama");
String kota = request.getParameter("kota");
System.out.println(nama);
System.out.println(kota);
Query query = session.createQuery("from UserAdmin where (nama_depan = :namadepan or nama_tengah = :namatengah or nama_belakang = :namabelakang) or kota = :kota");
query.setParameter("namadepan", nama);
query.setParameter("namatengah", nama);
query.setParameter("namabelakang", nama);
query.setParameter("kota", kota);
System.out.println(query);
@SuppressWarnings("unchecked")
List <UserAdmin> result = query.list();
for(int i=0; i < result.size(); i++){
model.addObject("result", result);
}
session.close();
factory.close();
return userDaftarAnggota(model);
}
私のコントローラであり、これは誤りで、
org.hibernate.AnnotationException:org.ppbni.splatter.model.UserAdmin.korwil:不明なmappedBy 、参照されているプロパティが不明:org.ppbni.splatter.model.Korwil.useradmin at org.hibernate.cfg.OneToOneSecondPass.doSecondPass(OneToOneSecondPass.java:152) at org.hibernate.cfg.Configuration.originalSecondPassCompile(Configuration.java: 1686) at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1393) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1826) at org.ppbni.splatter.web.controller.UserController。 javaのでsun.reflect.NativeMethodAccessorImpl.invokeでsun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブメソッド) (不明なソース)sun.reflect.DelegatingMethodAccessorImpl.invokeで (不明なソース)でuserDaftarAnggotaPPBNI(UserController.java:97) .lang.reflect.Method.invoke(不明なソース) at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:219) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest InvocableHandlerMethod.java:132)org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethodでorg.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104) (RequestMappingHandlerAdapter.javaで: (AbstractHandlerMethodAdapter.java:745) 80) at org.springframework.web.servlet.DispatcherServlet。doDispatch org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)で(DispatcherServlet.java:925)org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)で でorg.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:838) (javax.servlet.http.HttpServlet.java:647) at org.springframework.web.servlet.FrameworkServlet.service( FrameworkServlet.java:812) のjavax.servlet.http.HttpServlet.service(HttpServlet.java:728) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129) at com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:77) at org.apache.catalina.core。 ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java: 330) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84) at org.springframework.security.web.FilterChainP $ VirtualFilterChain.doFilter(FilterChainProxy.java:342) (org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113) at org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter (FilterChainProxy.java:342) at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103) at org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:342) org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:342)org.springframeworkで でorg.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113) で 。 security.web org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilterでorg.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:342) で.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54) (RequestCacheAwareFilter.java:45) org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilterでorg.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:342) (BasicAuthenticationFilter.javaで:150) at org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFi lter.java:183)org.springframework.security.web.authentication.logout.LogoutFilter.doFilterでorg.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:342) (LogoutFilter.javaで : org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilterでorg.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:342) (SecurityContextPersistenceFilter.java:87)ORGで で105) 。 (フィルタチェーンのプロパティ)。 doFilter(FilterChainProxy。ジャワ:org.apacheでorg.springframework.web.filter.DelegatingFilterProxy.doFilterでorg.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346) (DelegatingFilterProxy.java:259) における160) 。 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve。org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)で を入力します。 java:222) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache。 catalina.core.StandardHostValve.invoke(StandardHostValve.java: 171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936) at org.apache.catalina。 (StandardEngineValve.java:118) のorg.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java: (AbstractProtocol.java:589) at org.apache.tomcat.util.net.JIoEndpoint $ SocketProcessor.run(JIoEndpoint.java:312) at java。 util.concurrent.ThreadPoolExecutor.runWorker(不明なソース) at java.util.concurrent.ThreadPoolExecu TOR $ Worker.run(不明なソース) java.lang.Thread.runで(不明なソース)
任意のヘルプは喜びになります:)
なぜ「MapsId」を使用していますか? http://www.objectdb.com/api/java/jpa/MapsId EmbeddableオブジェクトのIDをマップする場合に使用されます。 –
'UserAdmin'の' private String no_dana; 'の' @ GeneratedValue'は奇妙に見えます。 –