@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

解决方案 »

  1.   

    No identifier specified for entity: model.RingListAndRing 
    没有加主键。
    多对多关系不用写关系类的
      

  2.   

    @GeneratedValue 改成 @GeneratedValue(strategy=GenerationType.AUTO) 再试试
      

  3.   

    Duplicate collection role mapping model.Ring.rings重复调用了?up
      

  4.   

    我也是新手;
    关系不是用hibernate reverse engineering 可以自动映射生成么?干嘛手写?
      

  5.   

    import java.util.List;
    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;
    }
    }看看我的参考一下吧