Duvida básica relacionamento com hibernate

Ola pessoal, estou com duvidas referente a associação e relacionamento com o hiberte. Tenho um Enunciado:

“O Sistema Gerador de Provas por Disciplina deve permitir o cadastro de professores,
relacionando-os com suas respectivas disciplinas e turmas. O sistema deve garantir que
uma mesma turma, mesma disciplina possua apenas um único professor, porém uma
mesma turma poderá ter várias disciplinas, cada uma delas associadas com um único
professor. O professor poderá ministrar uma ou mais disciplinas e uma disciplina poderá ter
mais de um professor, desde que as turmas sejam diferentes”

Bom, acho q ainda nao entendi mto bem multiplicidade também

Professor 1___________________ 1Turma
Professor 1___________________ 1Disciplina
Turma 1______________________ 1…* Disciplinas

Está correta esta multiplicidade entre as classses?

Estou tentando implementar este exercicio tbm com hibernate
As configurações já estão ok, ou seja já consigo gravar entidade no banco, mas a minha duvida eh também com relacionamento. Como ficaria o relacionamento deste enunciado, eu fiz assim, mas nao tenho ctza

Professor

@Entity
@Table(name = "professor")
public class Professor implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    private String nome;
    private String endereco;
    private String email;
    private String telefone;
    @OneToOne(mappedBy="professor")
    private Turma turma;
    @OneToOne(mappedBy="professor")
    private Disciplina
    

    public Professor() {
    }

Turma

@Entity
@Table(name="turma")
public class Turma implements Serializable {

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private Long id;
    private String nome;
    private String turno;
    @OneToOne
    Professor professor;
    @OneToMany(opticional=false)
    Turma turma;

Disciplina

@Entity
@Table(name = "disciplina")
public class Disciplina implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    private String nome;
    @OneToMany(mappedBy="disciplina")
    private Turma turma;
    @ManyToOne
    private Professor professor;

Pessoal seria assim q faria este mapeamento…eu li alguma coisa sobre relacionamento no hibernate…e nao entendi mto se quando é ManyToOne(Se o many é do propria classe para a outra classe Ex: na classe Disciplina o @ManyToOne, quer dizer que muitas disciplinas tem um professor?)
alguem sabe alguma documentação que explique como entender melhor essas associoações, pois não sei quando é um e quando é outro…e tbm essas implementações do hibernate com JPA

Se alguem puder me ajudae e me explicar agredeça

Desde já Obrigado

Amigo…
só o OneToMany esta errado… o correto é ManyToOne.

Abraço.

ok vlw mto obrigado

abrass