hibernate not null属性引用空值或瞬时值:
这个问题随机出现。这个程序已经运行了一个多月,但今天它崩溃了。添加新订单时,用户可以从下拉列表中选择公司。然后他可以将新订单保存到数据库中。即使是现在,当用户重新加载应用程序时,大多数情况下它都能正常工作。错误代码如下所示: javax.persistence.PersistenceException:org.hibernate.PropertyValueException:notnull属性引用null或瞬态值:mapped.Order.company(odwzorowania.Zlecenie.firma) 使用Hibernate、JSF2.1、MySql 5.5、javax.persistence.* 这是代码(名字是从波兰语翻译过来的) 订单实体hibernate not null属性引用空值或瞬时值:,hibernate,entitymanager,hibernate-entitymanager,Hibernate,Entitymanager,Hibernate Entitymanager,这个问题随机出现。这个程序已经运行了一个多月,但今天它崩溃了。添加新订单时,用户可以从下拉列表中选择公司。然后他可以将新订单保存到数据库中。即使是现在,当用户重新加载应用程序时,大多数情况下它都能正常工作。错误代码如下所示: javax.persistence.PersistenceException:org.hibernate.PropertyValueException:notnull属性引用null或瞬态值:mapped.Order.company(odwzorowania.Zleceni
import javax.persistence.* //fixed in real code
@Entity
@Table(name = "order")
public class Order implements Serializable {
private static final long serialVersionUID = 1L;
private Integer idOrder;
private Company company;
[...]
@JoinColumn(name = "company_idCompany", referencedColumnName = "idCompany")
@ManyToOne(optional = false, fetch = FetchType.LAZY)
public Company getCompany() {
return company;
}
public void setCompany(Company company) {
this.company = company;
}
[...]
公司实体
import javax.persistence.*
@Entity
@Table(name = "company")
public class Company implements Serializable {
private static final long serialVersionUID = 1L;
private Integer idCompany;
private List<Order> orderList;
[...]
@OneToMany(mappedBy = "company", fetch = FetchType.LAZY)
public List<Order> getOrderList() {
return orderList;
}
public void setOrderList(List<Order>orderList) {
this.orderList = orderList;
}
[...]
导入javax.persistence*
@实体
@表(name=“公司”)
公共类公司实现可序列化{
私有静态最终长serialVersionUID=1L;
私营公司;
私有列表订单列表;
[...]
@OneToMany(mappedBy=“company”,fetch=FetchType.LAZY)
公共列表getOrderList(){
返回订单列表;
}
公共无效setOrderList(ListorderList){
this.orderList=订单列表;
}
[...]
堆栈跟踪(mapped.Order.company与从波兰语翻译过来的odwzorowania.Zlecenie.firma相同)
2012 xx xx xx:xx:xx com.sun.faces.application.ApplicationImpl newThing
严重:无法加载类别:
javax.persistence.PersistenceException:org.hibernate.PropertyValueException:notnull属性引用空值或瞬时值:odwzorowania.Zlecenie.firma
位于org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:637)
位于org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:74)
位于controllery.FirmaController.get(FirmaController.java:84)
在validary.FirmyValidator(FirmyValidator.java:32)
位于sun.reflect.generatedconstructor或accessor154.newInstance(未知源)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:532)
位于java.lang.Class.newInstance0(Class.java:372)
位于java.lang.Class.newInstance(Class.java:325)
位于com.sun.faces.application.ApplicationImpl.newThing(ApplicationImpl.java:1699)
位于com.sun.faces.application.ApplicationImpl.createValidator(ApplicationImpl.java:1557)
位于com.sun.faces.facelets.tag.jsf.ValidatorTagHandlerDelegateImpl.createValidator(ValidatorTagHandlerDelegateImpl.java:238)
位于com.sun.faces.facelets.tag.jsf.ValidatorTagHandlerDelegateImpl.applyAttachedObject(ValidatorTagHandlerDelegateImpl.java:132)
位于com.sun.faces.facelets.tag.jsf.ValidatorTagHandlerDelegateImpl.applyNested(ValidatorTagHandlerDelegateImpl.java:205)
位于com.sun.faces.facelets.tag.jsf.ValidatorTagHandlerDelegateImpl.apply(ValidatorTagHandlerDelegateImpl.java:87)
位于javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
在javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:98)
位于javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
位于com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:188)
位于javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
在javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:98)
位于javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
位于com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:188)
位于javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
在javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:98)
位于javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
位于com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:188)
位于javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
在javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:98)
位于com.sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:93)
在javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:98)
位于com.sun.faces.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:86)
在com.sun.faces.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:152)上
位于com.sun.faces.application.view.FaceletViewHandlingStrategy.buildView(FaceletViewHandlingStrategy.java:769)
位于com.sun.faces.application.view.StateManagementStrategyImpl.restoreView(StateManagementStrategyImpl.java:232)
位于com.sun.faces.application.StateManagerImpl.restoreView(StateManagerImpl.java:188)
在com.sun.faces.application.view.ViewHandlingStrategy.restoreView(ViewHandlingStrategy.java:123)上
在com.sun.faces.application.view.FaceletViewHandlingStrategy.restoreView(FaceletViewHandlingStrategy.java:452)
在com.sun.faces.application.view.MultiViewHandler.restoreView(MultiViewHandler.java:148)上
位于com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:192)
位于com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
位于com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:116)
在com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)上
位于javax.faces.webapp.FacesServlet.service(FacesServlet.java:409)
位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
位于org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
import javax.persistence.*
@Entity
@Table(name = "company")
public class Company implements Serializable {
private static final long serialVersionUID = 1L;
private Integer idCompany;
private List<Order> orderList;
[...]
@OneToMany(mappedBy = "company", fetch = FetchType.LAZY)
public List<Order> getOrderList() {
return orderList;
}
public void setOrderList(List<Order>orderList) {
this.orderList = orderList;
}
[...]
2012-xx-xx xx:xx:xx com.sun.faces.application.ApplicationImpl newThing
SEVERE: Unable to load class:
javax.persistence.PersistenceException: org.hibernate.PropertyValueException: not-null property references a null or transient value: odwzorowania.Zlecenie.firma
at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:637)
at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:74)
at controllery.FirmaController.get(FirmaController.java:84)
at validatory.FirmyValidator.<init>(FirmyValidator.java:32)
at sun.reflect.GeneratedConstructorAccessor154.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:532)
at java.lang.Class.newInstance0(Class.java:372)
at java.lang.Class.newInstance(Class.java:325)
at com.sun.faces.application.ApplicationImpl.newThing(ApplicationImpl.java:1699)
at com.sun.faces.application.ApplicationImpl.createValidator(ApplicationImpl.java:1557)
at com.sun.faces.facelets.tag.jsf.ValidatorTagHandlerDelegateImpl.createValidator(ValidatorTagHandlerDelegateImpl.java:238)
at com.sun.faces.facelets.tag.jsf.ValidatorTagHandlerDelegateImpl.applyAttachedObject(ValidatorTagHandlerDelegateImpl.java:132)
at com.sun.faces.facelets.tag.jsf.ValidatorTagHandlerDelegateImpl.applyNested(ValidatorTagHandlerDelegateImpl.java:205)
at com.sun.faces.facelets.tag.jsf.ValidatorTagHandlerDelegateImpl.apply(ValidatorTagHandlerDelegateImpl.java:87)
at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:98)
at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:188)
at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:98)
at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:188)
at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:98)
at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:188)
at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:98)
at com.sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:93)
at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:98)
at com.sun.faces.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:86)
at com.sun.faces.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:152)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.buildView(FaceletViewHandlingStrategy.java:769)
at com.sun.faces.application.view.StateManagementStrategyImpl.restoreView(StateManagementStrategyImpl.java:232)
at com.sun.faces.application.StateManagerImpl.restoreView(StateManagerImpl.java:188)
at com.sun.faces.application.view.ViewHandlingStrategy.restoreView(ViewHandlingStrategy.java:123)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.restoreView(FaceletViewHandlingStrategy.java:452)
at com.sun.faces.application.view.MultiViewHandler.restoreView(MultiViewHandler.java:148)
at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:192)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:116)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:409)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:636)
Caused by: org.hibernate.PropertyValueException: not-null property references a null or transient value: odwzorowania.Zlecenie.firma
at org.hibernate.engine.Nullability.checkNullability(Nullability.java:72)
at org.hibernate.event.def.DefaultFlushEntityEventListener.scheduleUpdate(DefaultFlushEntityEventListener.java:270)
at org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:128)
at org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:196)
at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:76)
at org.hibernate.event.def.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:35)
at org.hibernate.impl.SessionImpl.autoFlushIfRequired(SessionImpl.java:969)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1114)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:65)
... 58 more
@ManyToOne(**optional = false**, fetch = FetchType.LAZY)