当前位置: 代码迷 >> J2EE >> hibernate关联有关问题,新增时键值冲突有关问题
  详细解决方案

hibernate关联有关问题,新增时键值冲突有关问题

热度:70   发布时间:2016-04-17 23:24:07.0
hibernate关联问题,新增时键值冲突问题
三个类:分别是一对多关系,一对多关系 如下:

@Entity
@Table(name = "t_wst")
public class TWst implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", nullable = false)
private Integer id;

@Column(name = "en_name")
private String en_name;

@Column(name = "zh_name")
private String zh_name;

@Column(name = "description")
private String description;

@OneToMany (cascade = CascadeType.ALL, targetEntity =TWstNews.class,fetch=FetchType.LAZY )
@JoinColumn(name = "wst_id",referencedColumnName="id",insertable=false,updatable=false) 
//@OrderBy(value = "position_id asc")  
private Set<TWstNews> tWstNews;


@Entity
@Table(name = "t_wst_news")
public class TWstNews implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", nullable = false)
private Integer id;

@Column(name = "wst_id")
private Integer wst_id;

@Column(name = "news_id")
private Integer news_id;

@Column(name = "position_id")
private Integer position_id;

@OneToMany (cascade = CascadeType.ALL,fetch=FetchType.LAZY)
@JoinColumn(name = "id",referencedColumnName="news_id",insertable=false,updatable=false) 
//@OrderBy(value = "position_id asc")  
private Set<TNews> tNews;


@Entity
@Table(name = "t_news")
public class TNews implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", nullable = false)
private Integer id;

@Column(name = "add_time")
private Date add_time;


@Column(name = "zh_name")
private String zh_name;

@Column(name = "pic_add")
private String pic_add;

@Column(name = "vod_add")
private String vod_add;

@Column(name = "description")
private String description;

@Column(name = "position_id")
private Integer position_id;

问题:在数据库中我新增tWstNews 中发现news_id不能重复,可是一对多没这个限制吧?
都提示错误:


------解决思路----------------------
news_id当主键配了吧?看看表结构。
这个多对多写得这么别扭......
  相关解决方案