Java 双向hibernate-org.hibernate.AnnotationException:未知的mappedBy in:错误
我有4张桌子:kode_pos、korwil、user和wafat。在Korwil类中,它持有来自用户的外键,并将主键提供给kode_pos, 这意味着在korwil类@OneToOne和@OneToMany中有2个映射 我犯了这个错误 org.hibernate.AnnotationException:Unknown mappedBy in:org.ppbni.splatter.model.UserAdmin.korwil,运行应用程序时引用的属性Unknown:org.ppbni.splatter.model.korwil.UserAdmin`~ 这是erd 这是我的kode_pos课程Java 双向hibernate-org.hibernate.AnnotationException:未知的mappedBy in:错误,java,hibernate,Java,Hibernate,我有4张桌子:kode_pos、korwil、user和wafat。在Korwil类中,它持有来自用户的外键,并将主键提供给kode_pos, 这意味着在korwil类@OneToOne和@OneToMany中有2个映射 我犯了这个错误 org.hibernate.AnnotationException:Unknown mappedBy in:org.ppbni.splatter.model.UserAdmin.korwil,运行应用程序时引用的属性Unknown:org.ppbni.splat
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课程
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 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);
}
@SuppressWarnings(“弃用”)
@RequestMapping(value=“/user/daftar anggota ppbni.html”)
公共模型和视图用户DAFTRANGGOTAPPBNI(模型映射模型、HttpServletRequest请求、HttpServletResponse响应)引发异常{
SessionFactory工厂=新配置().configure().buildSessionFactory();
Session Session=factory.openSession();
字符串nama=request.getParameter(“nama”);
字符串kota=request.getParameter(“kota”);
系统输出打印LN(nama);
系统输出打印LN(kota);
Query Query=session.createQuery(“从用户管理员那里(nama_depan=:namadepan或nama_tengah=:namatengah或nama_belakang=:namabelakang)或kota=:kota”);
setParameter(“namadepan”,nama);
setParameter(“namatengah”,nama);
setParameter(“namabelakang”,nama);
query.setParameter(“kota”,kota);
System.out.println(查询);
@抑制警告(“未选中”)
列表结果=query.List();
对于(int i=0;i
这就是错误所在
org.hibernate.AnnotationException:org.ppbni.splatter.model.UserAdmin.korwil中的未知映射,引用的属性未知:org.ppbni.splatter.model.korwil.UserAdmin
位于org.hibernate.cfg.OneToOneSecondPass.doSecondPass(OneToOneSecondPass.java:152)
位于org.hibernate.cfg.Configuration.originalSecondPassCompile(Configuration.java:1686)
位于org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1393)
位于org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1826)
位于org.ppbni.splatter.web.controller.UserController.userDaftarAnggotaPPBNI(UserController.java:97)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(未知源)
在sun.reflect.DelegatingMethodAccessorImpl.invoke处(未知源)
位于java.lang.reflect.Method.invoke(未知源)
位于org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:219)
位于org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
位于org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
位于org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:745)
位于org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:686)
位于org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
位于org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925)
位于org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
位于org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)
位于org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:838)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
位于org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
在com.opensymphony.sitemesh.webapp.SiteMeshFilter.acquincontent(SiteMeshFilter.java:129)
位于com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:77)
位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
位于org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
位于org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
位于org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
位于org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
位于org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
位于org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
位于org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
位于org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
位于org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
位于org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
位于org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
位于org.springframework.s
@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);
}
PersistentClass otherSide = (PersistentClass) persistentClasses.get( value.getReferencedEntityName() );
Property otherSideProperty;
try {
if ( otherSide == null ) {
throw new MappingException( "Unable to find entity: " + value.getReferencedEntityName() );
}
otherSideProperty = BinderHelper.findPropertyByName( otherSide, mappedBy );
}
catch (MappingException e) {
throw new AnnotationException(
"Unknown mappedBy in: " + StringHelper.qualify( ownerEntity, ownerProperty )
+ ", referenced property unknown: "
+ StringHelper.qualify( value.getReferencedEntityName(), mappedBy )
);
}
if ( otherSideProperty == null ) {
throw new AnnotationException(
"Unknown mappedBy in: " + StringHelper.qualify( ownerEntity, ownerProperty )
+ ", referenced property unknown: "
+ StringHelper.qualify( value.getReferencedEntityName(), mappedBy )
);
}