市民看其可怜报警求助hibernate报错

10:06:11 org.hibernate.util.JDBCExceptionReporter logExceptions
警告: SQL Error: 1452, SQLState: 23000
10:06:11 org.hibernate.util.JDBCExceptionReporter logExceptions
严重: Cannot add or update a child row: a foreign key constraint fails (`studysystem`.`articleinfor`, CONSTRAINT `FKE90A0E4EE57DF3E5` FOREIGN KEY (`typeid`) REFERENCES `articletype` (`typeid`))
org.springframework.dao.DataIntegrityViolationException: could not insert: [com.studysystem.model.article.ArticleInfor]; SQL [insert into articleinfor (articleName, authorName, brandid, clickcount, commend, content, createDate, description, typeid, viewcount, visible) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)]; constraint [null]; nested exception is org.hibernate.exception.ConstraintViolationException: could not insert: [com.studysystem.model.article.ArticleInfor]
at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:637)
at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:411)
at org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
at org.springframework.orm.hibernate3.HibernateTemplate.save(HibernateTemplate.java:683)
at com.studysystem.dao.handler.imp.spring.SpringHandler.saveObj(SpringHandler.java:58)
at com.studysystem.dao.BaseDAO.save(BaseDAO.java:41)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy29.save(Unknown Source)
at com.studysystem.service.BaseService.save(BaseService.java:32)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy39.save(Unknown Source)
at JUnit.test.ArticleInforServiceTest.testSave(ArticleInforServiceTest.java:68)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: org.hibernate.exception.ConstraintViolationException: could not insert: [com.studysystem.model.article.ArticleInfor]
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:96)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:64)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2329)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2836)
at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:71)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:268)
at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:321)
at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:204)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:130)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210)
at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:56)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195)
at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:705)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:693)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:689)
at org.springframework.orm.hibernate3.HibernateTemplate$12.doInHibernate(HibernateTemplate.java:686)
at org.springframework.orm.hibernate3.HibernateTemplate$12.doInHibernate(HibernateTemplate.java:1)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:406)
... 56 more
Caused by: com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: Cannot add or update a child row: a foreign key constraint fails (`studysystem`.`articleinfor`, CONSTRAINT `FKE90A0E4EE57DF3E5` FOREIGN KEY (`typeid`) REFERENCES `articletype` (`typeid`))
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:931)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2822)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1536)
at com.mysql.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedStatement.java:1159)
at com.mysql.jdbc.ServerPreparedStatement.executeInternal(ServerPreparedStatement.java:684)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1184)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1101)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1086)
at mons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:102)
at org.hibernate.id.IdentityGenerator$GetGeneratedKeysDelegate.executeAndExtract(IdentityGenerator.java:94)
at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:57)
... 74 more
这是我junit测试出来的
org.hibernate.AssertionFailure: null id in com.studysystem.model.article.ArticleInfor entry (don't flush the Session after an exception occurs)
at org.hibernate.event.def.DefaultFlushEntityEventListener.checkId(DefaultFlushEntityEventListener.java:82)
at org.hibernate.event.def.DefaultFlushEntityEventListener.getValues(DefaultFlushEntityEventListener.java:190)
at org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:147)
at org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:219)
at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:99)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1206)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:375)
at org.hibernate.mit(JDBCTransaction.java:137)
at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:656)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:754)
at org.springframework.transaction.mit(AbstractPlatformTransactionManager.java:723)
at org.springframework.transaction.mitTransactionAfterReturning(TransactionAspectSupport.java:375)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:120)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy39.save(Unknown Source)
at JUnit.test.ArticleInforServiceTest.testSave(ArticleInforServiceTest.java:68)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
这个是我的model类
package com.studysystem.model.
import java.io.S
import java.util.D
import java.util.HashS
import java.util.S
import javax.persistence.CascadeT
import javax.persistence.C
import javax.persistence.E
import javax.persistence.GeneratedV
import javax.persistence.Id;
import javax.persistence.JoinC
import javax.persistence.L
import javax.persistence.ManyToO
import javax.persistence.OneToM
import javax.persistence.OrderBy;
import javax.persistence.T
import javax.persistence.T
import javax.persistence.TemporalT
pass.annotations.I
pass.annotations.S
pass.annotations.SearchableC
pass.annotations.SearchableId;
pass.annotations.SearchableP
pass.annotations.S
* @author zouqianheng
@SuppressWarnings("serial")
@Entity @Searchable @Table(name="articleinfor")
public class ArticleInfor implements Serializable {
@Id @GeneratedValue @SearchableId
/**书名**/
@ManyToOne(cascade=CascadeType.REFRESH)
@JoinColumn(name="brandid") @SearchableComponent
@Column(name="articleName",length=50,nullable=false) @SearchableProperty(boost=2,name="articleName")
private String articleN
@Column(name="authorName",length=50) @SearchableProperty(index=Index.NO,store=Store.YES)
private String authorN//作者的名字
@Column(name="description",nullable=false,length=300) @SearchableProperty(index=Index.NO,store=Store.YES)
private S//内容简介
@Lob @Column(name="content",nullable=false) @SearchableProperty
private S//详细内容
@Temporal(TemporalType.TIMESTAMP)
@Column(name="createDate",nullable=false)
private Date createDate=new Date();//上架日期
@Column(nullable=false)
private Boolean visible=//是否可见
/** 观看量 **/
@Column(nullable=false)
private Integer viewcount = 0;
@Column(name="clickcount",nullable=false)
private Integer clickcount=1;//人气指数
@Column(name="commend",nullable=false)
private Boolean commend=//是否推荐
@ManyToOne(cascade=CascadeType.REFRESH,optional=false)
@JoinColumn(name="typeid") @SearchableComponent
private ArticleT//文章样式
@OneToMany(cascade={CascadeType.REMOVE,CascadeType.PERSIST},mappedBy="article")
@OrderBy("visible desc,id asc")
@SearchableComponent
private Set&ArticleStyle& styles=new HashSet&ArticleStyle&();//文章类型
public void removeArticleStyle(ArticleStyle style){
if(this.styles.contains(style)){
this.styles.remove(style);
style.setArticle(null);
public void addArticleStyle(ArticleStyle style){
if(!this.styles.contains(style)){
this.styles.add(style);
style.setArticle(this);
public Integer getId() {
public void setId(Integer id) {
public String getArticleName() {
return articleN
public void setArticleName(String articleName) {
this.articleName = articleN
public String getAuthorName() {
return authorN
public void setAuthorName(String authorName) {
this.authorName = authorN
public String getDescription() {
public void setDescription(String description) {
this.description =
public String getContent() {
public void setContent(String content) {
this.content =
public Date getCreateDate() {
return createD
public void setCreateDate(Date createDate) {
this.createDate = createD
public Boolean getVisible() {
public void setVisible(Boolean visible) {
this.visible =
public Integer getClickcount() {
public void setClickcount(Integer clickcount) {
this.clickcount =
public Integer getViewcount() {
public void setViewcount(Integer viewcount) {
this.viewcount =
public Boolean getCommend() {
public void setCommend(Boolean commend) {
public ArticleType getType() {
public void setType(ArticleType type) {
this.type =
public Set&ArticleStyle& getStyles() {
public void setStyles(Set&ArticleStyle& styles) {
this.styles =
public Brand getBrand() {
public void setBrand(Brand brand) {
this.brand =
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((id == null) ? 0 : id.hashCode());
public boolean equals(Object obj) {
if (this == obj)
if (obj == null)
if (getClass() != obj.getClass())
final ArticleInfor other = ( ArticleInfor )
if (id == null) {
if (other.id != null)
} else if (!id.equals(other.id))
package com.studysystem.model.
import javax.persistence.CascadeT
import javax.persistence.C
import javax.persistence.E
import javax.persistence.GeneratedV
import javax.persistence.Id;
import javax.persistence.JoinC
import javax.persistence.ManyToO
import javax.persistence.T
import javax.persistence.T
pass.annotations.I
pass.annotations.S
pass.annotations.SearchableP
pass.annotations.SearchableR
pass.annotations.S
* @author zouqianheng
@Entity@Table(name="articlestyle") @Searchable(root=false)
public class ArticleStyle {
@Id @GeneratedValue @SearchableProperty(index=Index.NO,store=Store.YES)
@Column(name="styleName",length=30,nullable=false)@SearchableProperty(index=Index.NO,store=Store.YES,name="styleName")
private String styleN//??????
@Column(name="imagename",length=40,nullable=false)@SearchableProperty(index=Index.NO,store=Store.YES)
private S//??
@Column(name="visible",nullable=false)
private Boolean visible=//???????
@ManyToOne(cascade=CascadeType.REFRESH,optional=false)
@JoinColumn(name="articleid") @SearchableReference
private ArticleI
public ArticleStyle(){}
public ArticleStyle(String name, String imagename) {
this. styleName =
this.imagename =
public Integer getId() {
public void setId(Integer id) {
public String getStyleName() {
return styleN
public void setStyleName(String styleName) {
this.styleName = styleN
public String getImagename() {
public void setImagename(String imagename) {
this.imagename =
public Boolean getVisible() {
public void setVisible(Boolean visible) {
this.visible =
public ArticleInfor getArticle() {
public void setArticle(ArticleInfor article) {
this.article =
System.out.println(this.article);
@Transient
public String getImageFullPath(){
return "/images/article/"+ this.getArticle().getType().getTypeid()+ "/"+
this.getArticle().getId()+ "/prototype/"+ this.
@Transient
public String getImage140FullPath(){
return "/images/article/"+ this.getArticle().getType().getTypeid()+ "/"+
this.getArticle().getId()+ "/140x/"+ this.
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((id == null) ? 0 : id.hashCode());
public boolean equals(Object obj) {
if (this == obj)
if (obj == null)
if (getClass() != obj.getClass())
final ArticleStyle other = (ArticleStyle)
if (id == null) {
if (other.id != null)
} else if (!id.equals(other.id))
package com.studysystem.model.
import javax.persistence.CascadeT
import javax.persistence.C
import javax.persistence.E
import javax.persistence.GeneratedV
import javax.persistence.Id;
import javax.persistence.JoinC
import javax.persistence.ManyToO
import javax.persistence.T
import javax.persistence.T
pass.annotations.I
pass.annotations.S
pass.annotations.SearchableP
pass.annotations.SearchableR
pass.annotations.S
* @author zouqianheng
@Entity@Table(name="articlestyle") @Searchable(root=false)
public class ArticleStyle {
@Id @GeneratedValue @SearchableProperty(index=Index.NO,store=Store.YES)
@Column(name="styleName",length=30,nullable=false)@SearchableProperty(index=Index.NO,store=Store.YES,name="styleName")
private String styleN//??????
@Column(name="imagename",length=40,nullable=false)@SearchableProperty(index=Index.NO,store=Store.YES)
private S//??
@Column(name="visible",nullable=false)
private Boolean visible=//???????
@ManyToOne(cascade=CascadeType.REFRESH,optional=false)
@JoinColumn(name="articleid") @SearchableReference
private ArticleI
public ArticleStyle(){}
public ArticleStyle(String name, String imagename) {
this. styleName =
this.imagename =
public Integer getId() {
public void setId(Integer id) {
public String getStyleName() {
return styleN
public void setStyleName(String styleName) {
this.styleName = styleN
public String getImagename() {
public void setImagename(String imagename) {
this.imagename =
public Boolean getVisible() {
public void setVisible(Boolean visible) {
this.visible =
public ArticleInfor getArticle() {
public void setArticle(ArticleInfor article) {
this.article =
System.out.println(this.article);
@Transient
public String getImageFullPath(){
return "/images/article/"+ this.getArticle().getType().getTypeid()+ "/"+
this.getArticle().getId()+ "/prototype/"+ this.
@Transient
public String getImage140FullPath(){
return "/images/article/"+ this.getArticle().getType().getTypeid()+ "/"+
this.getArticle().getId()+ "/140x/"+ this.
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((id == null) ? 0 : id.hashCode());
public boolean equals(Object obj) {
if (this == obj)
if (obj == null)
if (getClass() != obj.getClass())
final ArticleStyle other = (ArticleStyle)
if (id == null) {
if (other.id != null)
} else if (!id.equals(other.id))
package com.studysystem.model.
import java.util.HashS
import java.util.S
import javax.persistence.CascadeT
import javax.persistence.C
import javax.persistence.E
import javax.persistence.GeneratedV
import javax.persistence.GenerationT
import javax.persistence.Id;
import javax.persistence.JoinC
import javax.persistence.ManyToO
import javax.persistence.OneToM
import javax.persistence.T
pass.annotations.I
pass.annotations.S
pass.annotations.SearchableP
pass.annotations.S
* @author zouqianheng
@Entity @Searchable(root=false)@Table(name="articletype")
public class ArticleType {
@Id @GeneratedValue(strategy=GenerationType.AUTO)
@SearchableProperty(index=Index.NO,store=Store.YES)
private I//???id
@Column(name="typeName",length=36,nullable=false)@SearchableProperty
(index=Index.NOT_ANALYZED,store=Store.YES,name="typeName")
private String typeN//??????
@Column(name="note",length=200)
private S//????????????????????????
@Column(name="visible",nullable=false)
private Boolean visible=//?????
@OneToMany(cascade={CascadeType.REFRESH,CascadeType.REMOVE},mappedBy="parent")
private Set&ArticleType& childTypes=new HashSet&ArticleType&();//?????
@ManyToOne(cascade=CascadeType.REFRESH)@JoinColumn(name="parentid")
private ArticleT//????????
@OneToMany(mappedBy="type", cascade=CascadeType.REMOVE)
private Set&ArticleInfor& article=new HashSet&ArticleInfor&();
public ArticleType(){}
public ArticleType(Integer typeid) {
this.typeid =
public ArticleType(String typeName,String note){
this.typeName=typeN
this.note=
public Integer getTypeid() {
public void setTypeid(Integer typeid) {
this.typeid =
public String getTypeName() {
return typeN
public void setTypeName(String typeName) {
this.typeName = typeN
public String getNote() {
public void setNote(String note) {
this.note =
public Boolean getVisible() {
public void setVisible(Boolean visible) {
this.visible =
public Set&ArticleType& getChildTypes() {
return childT
public void setChildTypes(Set&ArticleType& childTypes) {
this.childTypes = childT
public ArticleType getParent() {
public void setParent(ArticleType parent) {
this.parent =
public Set&ArticleInfor& getArticle() {
public void setArticle(Set&ArticleInfor& article) {
this.article =
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((typeid == null) ? 0 : typeid.hashCode());
public boolean equals(Object obj) {
if (this == obj)
if (obj == null)
if (getClass() != obj.getClass())
final ArticleType other = (ArticleType)
if (typeid == null) {
if (other.typeid != null)
} else if (!typeid.equals(other.typeid))
/**??????鼮?????
package com.studysystem.model.
import java.io.S
import javax.persistence.C
import javax.persistence.E
import javax.persistence.Id;
import javax.persistence.T
pass.annotations.I
pass.annotations.S
pass.annotations.SearchableP
pass.annotations.S
* @author zouqianheng
@Entity @Searchable(root=false )@Table(name="brand")
public class Brand implements Serializable{
private static final long serialVersionUID = 7915466L;
@Id @Column(length=36)@SearchableProperty(index=Index.NO,store=Store.YES)
@Column(name="name",length=40,nullable=false)
@SearchableProperty(index=Index.NOT_ANALYZED,store=Store.YES,name="brandName")
private S//???
@Column(name="visible",nullable=false)
private Boolean visible=//?????
@Column(name="logopath",length=80)
private S//logo??·??
public Brand(String code) {
this.code =
public Brand() {}
public Brand(String name, String logopath) {
this.name =
this.logopath =
public String getCode() {
public void setCode(String code) {
this.code =
public String getName() {
public void setName(String name) {
this.name =
public Boolean getVisible() {
public void setVisible(Boolean visible) {
this.visible =
public String getLogopath() {
public void setLogopath(String logopath) {
this.logopath =
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((code == null) ? 0 : code.hashCode());
public boolean equals(Object obj) {
if (this == obj)
if (obj == null)
if (getClass() != obj.getClass())
Brand other = (Brand)
if (code == null) {
if (other.code != null)
} else if (!code.equals(other.code))
假设我不关联外键的话就可以测试成功。。。但是我保存数据的使用保存不到aritclestype表里面去
这个是我的junit的代码
public void testSave() {
// DAOInterface&ArticleInfor& articleInforDAO=(ArticleInforDAO)factory.getBean("articleInforDAO");
IArticleInforService um=(IArticleInforService) factory.getBean("articleInforService");
ArticleInfor article = new ArticleInfor ();
article.setId(1);
article.setArticleName("跟我学spring");
article.setClickcount(1);
article.setViewcount(1);
article.setBrand(new Brand("java"));
article.setViewcount(3);
article.setAuthorName("inewzone");
article.setCommend(true);
article.setDescription("比官方文档还要正确的知识体系讲解");
article.setContent("本书最大的特点:深入 详尽、解惑");
article.addArticleStyle(new ArticleStyle("155", "mmmm.gif"));
article.setCreateDate(DateUtil.datetime());
article.setType(new ArticleType(3));
um.save(article);
System.out.println(article.getId());
告诉原因吗求解救!
问题补充:能再具体一点吗&img src="/images/smiles/icon_smile.gif"/& 怎么修改比较合适。。。麻烦了!&div class="quote_title"&Wind_ZhongGang 写道&/div&&div class="quote_div"&CascadeType.REFRESH: 当refresh()函数被调用时, 触发级联更新(refresh)操作
&br /&
&br /&你没有显示调用这个方法 还有为什么要配置成Refresh呢?这个真是不常用啊
&br /&
&br /&还有下次贴代码 贴关键就行了 整这么多 翻了半天 问题只要切中要害就行 那些多余的错误信息完全是误导&/div&
&br /&
问题补充:其实是外键问题删掉外键就解决了。。。嘿嘿!&div class="quote_title"&Wind_ZhongGang 写道&/div&&div class="quote_div"&CascadeType.REFRESH: 当refresh()函数被调用时, 触发级联更新(refresh)操作
&br /&
&br /&你没有显示调用这个方法 还有为什么要配置成Refresh呢?这个真是不常用啊
&br /&
&br /&还有下次贴代码 贴关键就行了 整这么多 翻了半天 问题只要切中要害就行 那些多余的错误信息完全是误导&/div&
&br /&
CascadeType.REFRESH: 当refresh()函数被调用时, 触发级联更新(refresh)操作
你没有显示调用这个方法 还有为什么要配置成Refresh呢?这个真是不常用啊
还有下次贴代码 贴关键就行了 整这么多 翻了半天 问题只要切中要害就行 那些多余的错误信息完全是误导
已解决问题
未解决问题

我要回帖

更多关于 hibernate错误 的文章

 

随机推荐