hibernate级联保存 关联的字段为空???求大神支招

青青争 2014-05-16 08:30:06
@Entity
@Table(name = "t_quality_period")
public class TQualityPeriod implements java.io.Serializable {
private static final long serialVersionUID = 1L;
private Integer qualityPeriodId;
private TJan tjan;
@Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "quality_period_id", unique = true, nullable = false)
public Integer getQualityPeriodId() {
return this.qualityPeriodId;
}
@ManyToOne(cascade=CascadeType.ALL,optional=true)
@JoinColumn(name = "janId",referencedColumnName="janId")
@Basic(fetch=FetchType.LAZY)
@NotFound(action=NotFoundAction.IGNORE)
public TJan getTjan() {
return tjan;
}
public void setTjan(TJan tjan) {
this.tjan = tjan;
}
}

@Entity
@Table(name = "t_jan")
public class TJan implements java.io.Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private int janId;
private String prodName;
private Set<TQualityPeriod> tqualityPeriodList;

@OneToMany(mappedBy = "tjan", fetch = FetchType.EAGER)
@Cascade(value={org.hibernate.annotations.CascadeType.SAVE_UPDATE})
public Set<TQualityPeriod> getTqualityPeriodList() {
return tqualityPeriodList;
}

public void setTqualityPeriodList(Set<TQualityPeriod> tqualityPeriodList) {
this.tqualityPeriodList = tqualityPeriodList;
}
}

保存方法语句tqualityPeriod和tjan是页面提交的没有id的对象
Set<TQualityPeriod> list =new HashSet<TQualityPeriod>();
list.add(tqualityPeriod);
tJan.setTqualityPeriodList(list);
tJan.getTqualityPeriodList().add(tqualityPeriod);
janDao.save(tJan);
级联保存的两条数据,但是tqualityPeriod表里的janId的关联字段为空,是根本就不能保存上还是说我的配置和写法有问题?




...全文
200 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
darren中 2014-05-16
  • 打赏
  • 举报
回复
hibernate必须要设置主键策略才可以保存的 你可以手动生成id给主键 也可以通过集成seqen来生成主键 不然的话 没主键是不能保存的
@Id
	@SequenceGenerator(name = "generator",sequenceName="P_DATAONE_DATA$SEQ")
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "generator")
	@Column(name = "ID", unique = true, nullable = false, precision = 30, scale = 0)
	private long id;//主键
类似这样 是集成sequence
青青争 2014-05-16
  • 打赏
  • 举报
回复
求答案,求答案

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧