- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用“一对一”共享主键映射实体,我收到了标题中提到的错误,我已经在这里检查了以前的帖子,但没有解决我的问题。下面是相关代码:
这是在 Localsession 工厂中设置的 hibernate 属性:
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
Bean类如下:
@Entity
@Table(name="userdetails")
public class UserSignUpBean {
public UserSignUpBean(){}
//fields
@Id @GeneratedValue
@Column(name="id",unique=true,nullable=false)
private long id;
@OneToOne(cascade=javax.persistence.CascadeType.ALL)
@PrimaryKeyJoinColumn
private UserAuthorityBean userauthority;
public UserAuthorityBean getUserauthority() {
return userauthority;
}
public void setUserauthority(UserAuthorityBean userauthority) {
this.userauthority = userauthority;
}
//getters and setters for other fields
}
@Entity
@Table(name="userauthority")
public class UserAuthorityBean {
public UserAuthorityBean(){}
@Id
@GeneratedValue(generator="gen")
@GenericGenerator(name="gen",strategy="foreign",parameters=@Parameter(name="property",value="userdetails"))
@Column(name="id",nullable=false,unique=true)
private long id;
@OneToOne(mappedBy="userauthority",cascade=CascadeType.ALL)
private UserSignUpBean userdetails;
//other fields
public UserSignUpBean getUserdetails() {
return userdetails;
}
public void setUserdetails(UserSignUpBean userdetails) {
this.userdetails = userdetails;
}
//other field's getter and settter
}
我保存这两个 bean 的 DAO 代码是:
session.saveOrUpdate(userbean);
session.saveOrUpdate(uauthority);
异常堆栈跟踪:
org.hibernate.id.IdentifierGenerationException: attempted to assign id from null one-to-one property [in.amruth.xplore.domain.UserAuthorityBean.userdetails]
at org.hibernate.id.ForeignGenerator.generate(ForeignGenerator.java:98)
at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:117)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:209)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:194)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:114)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:90)
at org.hibernate.internal.SessionImpl.fireSaveOrUpdate(SessionImpl.java:680)
at org.hibernate.internal.SessionImpl.saveOrUpdate(SessionImpl.java:672)
at org.hibernate.internal.SessionImpl.saveOrUpdate(SessionImpl.java:667)
at in.amruth.xplore.dao.RegistrationDAO.registration(RegistrationDAO.java:94)
at in.amruth.xplore.service.RegistrationService.userRegitration(RegistrationService.java:18)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:98)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:262)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
at com.sun.proxy.$Proxy29.userRegitration(Unknown Source)
at in.amruth.xplore.controller.XploreController.signUp(XploreController.java:58)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:214)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:749)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:690)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:945)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:876)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:863)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
at 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 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.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at 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)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:154)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
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:953)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
非常感谢任何帮助。
最佳答案
我收到此错误是因为 uauthority.userdetails 为 null,这是因为我没有从我的 DAO 中显式调用 set 方法,即:
userbean.setUserauthority(uauthority);
uauthority.setUserdetails(userbean);
如果有人遇到此问题,请确保在保存实体之前调用这些方法。
关于hibernate - org.hibernate.id.IdentifierGenerationException : attempted to assign id from null one-to-one property,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22017741/
我有两个如下所示的实体 @Data @EqualsAndHashCode(callSuper = true) @Entity @Table(name = "foo") @Audited @AuditO
我使用 MySQL、Hibernate、JPA 和 Spring,我的问题是我无法一对一关联更新子表;我正在使用外国策略。 当我使用 saveOrUpdate 并调用第一次方法时,我可以将实体保存到数
当我运行我的主类 (Runner) 程序时,出现以下异常: org.hibernate.id.IdentifierGenerationException: attempted to assign id
为了快速生产,我正在尝试使用 JBoss Tools 4.1 Hibernate 插件。但我在第一回合遇到了异常(exception)。 首先物理数据库表如下: describe Teams ;
我有以下表格: @Entity @Table(name = "CUSTOMER") public class Customers implements Serializable { priva
如何在BetRecordAgEBR中传递和设置ID?请帮助我:) 提前致谢。这是我遇到的唯一问题。 BetRecordAgEBR 类适用于使用 jpa 的数据库。 if ("GR".equals(da
在一种情况下,我无法将我的数据库域模型映射到程序实体,其中该实体本质上是一个连接表(一个句点),它结合了另外两个实体(一个时间段和一天)。另一个实体(一节课)然后引用这个周期实体,确定它何时发生。 当
我有两个实体,名为 Customer 和他的 Biling Address。关系是一对一的。每个客户都有一个账单地址。我想在保留客户时自动保留帐单地址。客户 ID 是客户实体的主键,也是地址实体中的主
我正在尝试将数据保存到数据库(保存到两个表中,使用一对一映射)。 我正在使用 Hibernate、Struts2 和 MySQL 数据库。 保存数据时显示以下异常: org.hibernate.id.
我正在尝试使用“一对一”共享主键映射实体,我收到了标题中提到的错误,我已经在这里检查了以前的帖子,但没有解决我的问题。下面是相关代码: 这是在 Localsession 工厂中设置的 hibernat
当我尝试使用 Spring Boot 2.1.6.RELEASE 和 Spring Data JPA 将用户对象保存到数据库时遇到问题。 用户对象和详细信息对象具有双向一对一关系。 明细的id与用户的
我知道以前可能有人问过这个问题,但我没有找到解决我的问题的方法。我有一个 varchar(20) 的categoryID 主键列,实体类由 id 属性映射到该主键列。添加数据时,它采用通过 UI 输入
虽然我已经手动设置了 ID,但我收到了上述错误,但我在这里没有使用自动生成的 key 。当我设置 key 并将对象传递给 entityManager.persist(obj); 它给出了上面的错误。任
我正在 Hibernate 中编写多对一程序,当我在 DAO 中编写以下代码时: sessionFactory = HibernateUtility.createSessionFactory();
我在表中有一个复合主键(表名称:billingdetails,主键:billId 和 productId)。当我调用 ../billingdetails/save 时,它会抛出 org.hiberna
我正在 eclipse 中开发 spring 4.0 和 hibernate 4.0.1 项目,并使用 oracle 作为数据库。如果我在数据库中进行一些更改,那么更改将不会受到 eclipse 的影
我多次尝试使用下面的代码在表中插入 id 值,但它总是抛出 org.hibernate.id.IdentifierGenerationException: 此类的 ids 必须在调用 save() 之
我正在 Java 中构建一个休息 Web 服务,使用 json 输入 hibernate 进行数据库连接,对于数据库,我使用 MS SQL Server 作为数据库。虽然我的数据库表 ID 列设置为自
我是一名优秀的程序员,十分优秀!