@Entity
@Table(name="ring")
public class Ring {
@Id
@GeneratedValue
private long id;
@OneToMany(fetch = FetchType.LAZY, cascade = { CascadeType.ALL },mappedBy="ring")
private List<RingListAndRing> rings;
public void setId(long id) {
this.id = id;
}
}@Entity
@Table(name="ring_list")
public class RingList {
@Id
@GeneratedValue
private long id;
@OneToMany(fetch = FetchType.LAZY, cascade = { CascadeType.ALL },mappedBy="ringList")
private List<RingListAndRing> rings;
@OneToOne(fetch = FetchType.EAGER,cascade = { CascadeType.ALL },mappedBy="ringList")
private RingListType type;
@OneToOne(fetch = FetchType.EAGER,cascade = { CascadeType.ALL },mappedBy="ringLists")
private RingListTime ringListTime;
@Enumerated(EnumType.STRING)
private Enum state;
}@Entity
@Table(name="ring_list_ring")
public class RingListAndRing {
@OneToMany(fetch=FetchType.EAGER,cascade={CascadeType.ALL})
@Column(name="ring_list_id")
private RingList ringList;
@OneToMany(fetch=FetchType.EAGER,cascade={CascadeType.ALL})
@Column(name="ring_id")
private Ring ring;
private int place;
}@Entity
@Table(name="ring_list_time")
public class RingListTime {
@Id
@GeneratedValue
private long id;
@OneToMany(fetch=FetchType.EAGER,cascade={CascadeType.ALL},mappedBy="ringList")
private List<RingList> ringLists;
@Temporal(TemporalType.TIMESTAMP)
private Date date;
}
想要达到的目的是铃音榜单排名 使用多对多映射 手写一个关系类 RingListAndRing 记录铃音排名
但是系统报两个错No identifier specified for entity: model.RingListAndRing
Duplicate collection role mapping model.Ring.rings
@Table(name="ring")
public class Ring {
@Id
@GeneratedValue
private long id;
@OneToMany(fetch = FetchType.LAZY, cascade = { CascadeType.ALL },mappedBy="ring")
private List<RingListAndRing> rings;
public void setId(long id) {
this.id = id;
}
}@Entity
@Table(name="ring_list")
public class RingList {
@Id
@GeneratedValue
private long id;
@OneToMany(fetch = FetchType.LAZY, cascade = { CascadeType.ALL },mappedBy="ringList")
private List<RingListAndRing> rings;
@OneToOne(fetch = FetchType.EAGER,cascade = { CascadeType.ALL },mappedBy="ringList")
private RingListType type;
@OneToOne(fetch = FetchType.EAGER,cascade = { CascadeType.ALL },mappedBy="ringLists")
private RingListTime ringListTime;
@Enumerated(EnumType.STRING)
private Enum state;
}@Entity
@Table(name="ring_list_ring")
public class RingListAndRing {
@OneToMany(fetch=FetchType.EAGER,cascade={CascadeType.ALL})
@Column(name="ring_list_id")
private RingList ringList;
@OneToMany(fetch=FetchType.EAGER,cascade={CascadeType.ALL})
@Column(name="ring_id")
private Ring ring;
private int place;
}@Entity
@Table(name="ring_list_time")
public class RingListTime {
@Id
@GeneratedValue
private long id;
@OneToMany(fetch=FetchType.EAGER,cascade={CascadeType.ALL},mappedBy="ringList")
private List<RingList> ringLists;
@Temporal(TemporalType.TIMESTAMP)
private Date date;
}
想要达到的目的是铃音榜单排名 使用多对多映射 手写一个关系类 RingListAndRing 记录铃音排名
但是系统报两个错No identifier specified for entity: model.RingListAndRing
Duplicate collection role mapping model.Ring.rings
没有加主键。
多对多关系不用写关系类的
关系不是用hibernate reverse engineering 可以自动映射生成么?干嘛手写?
import java.util.Set;/**
* @hibernate.class table="teachers"
*
*
*/
public class Teacher extends Entity {
private String name;
private Set<Subject> subjects = new HashSet<Subject>();
private List<Schedule> schedules = new ArrayList<Schedule>(); /**
* @hibernate.bag inverse="true"
* @hibernate.one-to-many class="com.model.Schedule"
* @hibernate.key column="teacherID"
* @return
*/
public List<Schedule> getSchedules() {
return schedules;
} public void setSchedules(List<Schedule> schedules) {
this.schedules = schedules;
} /**
* @hibernate.set cascade="save-update" table="teacher_Subject"
* @hibernate.many-to-many class="com.model.Subject" column="subjectID"
* @hibernate.key column="teacherID"
*
*/
public Set<Subject> getSubjects() {
return subjects;
} public void setSubjects(Set<Subject> subjects) {
this.subjects = subjects;
}
/**
* @hibernate.property length="16"
* @return
*/
public String getName() {
return name;
} public void setName(String name) {
this.name = name;
}
}看看我的参考一下吧