hibernate not inserting parent

时光毁灭记忆、已成空白 提交于 2019-12-12 05:51:33

问题


I have two mapped class with hibernate:

SETTLEMENT_MODEL_GROUP (the parent):

@Entity
@Table(name = "MODEL_GROUP")
public class SettlementModelGroup
{

//omitted some not fields

@OneToMany( fetch = FetchType.LAZY, mappedBy = "modelGroup" )
private List<SettlementModel> settlementModels;

}

SETTLEMENT_MODEL childs:

@Entity
@Table(name = "MODEL")
public class SettlementModel
{

//omitted some not fields

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "MODEL_GROUP_ID", insertable = false, updatable = false, nullable = false)
private SettlementModelGroup modelGroup;

}

Now I'm doing simple insert into database:

  SettlementModel model = new SettlementModel();
  SettlementModelGroup settlementModelGroup = modelManager.getModelGroup( modelGroupId );

  //setting other fields for model
  model.setModelGroup( settlementModelGroup );

  sessionFactory.getCurrentSession().save( model );

Gives me:

SQL Error: 1400, SQLState: 23000
ORA-01400: cannot insetr NULL into ("MYSCHEMA"."MODEL"."MODEL_GROUP_ID")

Why is hibernate not inserting parent ID, although it exists and is created? Even giving it on standard output returns proper ID...

Moreover I cannot delete insertable = false, updatable = false from SettlementModel cause it gives me Hibernate Error during deployment


回答1:


add to @OneToMany cascade = CascadeType.ALL
remove nullable = false from parent




回答2:


Try using cascade = CascadeType.ALL into hbm file, where you defined the oneToMany relationship



来源:https://stackoverflow.com/questions/12159869/hibernate-not-inserting-parent

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!