Duvida de Mapeamento OneToOne no Hibernate Annotations

Olá pessoal,
gostaria de entender como funcionam os relacionamentos pelo hibernate annotations. Pesquisando achei muitos links quebrados, gambiarras e documentações muito sucintas!
Se puderem me ajudar, já agradeço!

eis minhas classes:

@Entity 
@Table(name = "classe")
public class Classe  implements Serializable { 

	@Id
	@GeneratedValue
	@Column(name="id")
	private int id;
	
	@Column(name="nome")
	private String nome;

//getters and setters;



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

	@Id
	@GeneratedValue
	@Column(name="id")
	private int id;
	
	@Column(name="nome")
	private String nome;
	
	@Column(name="idClasse")
	private Integer idClasse;

//getters and setters;


//e....
@Entity 
@Table(name="Professor")
public class Professor  implements Serializable { 

	@Id
	@GeneratedValue
	@Column(name="id")
	private int id;
	
	@Column(name="nome")
	private String nome;
	
	@Column(name="idClasse")
	private Integer idClasse;

//getters and setters;

como faco para no onload da Classe eu consiga popular os atributos (à serem criados)
Professor prof que seria OneToOne
e
List alunos que seria ManyToOne

Obrigado!

Obs: caso seja necessário, anexei o dump da base.

Vc quer popular as tabelas com dados enquanto ta carregando a aplicação? Acho que vc só resolve o seu problema com um dataset.

Os dados já estão no banco.
O que eu quero é buscar os dados já populando os atributos.

Segue abaixo a solução:

@Entity 
@Table(name = "classe")
public class Classe  implements Serializable { 

	@Id
	@GeneratedValue
	@Column(name="id")
	private int id;
	
	@Column(name="nome")
	private String nome;
	
	@OneToOne(mappedBy="classe")
	private Professor prof;
	
	@OneToMany(mappedBy="classe")
	private List<Aluno> alunos;
	



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

	@Id
	@GeneratedValue
	@Column(name="id")
	private int id;
	
	@Column(name="nome")
	private String nome;
	
	@ManyToOne
	@JoinColumn(name="idClasse")
	private Classe classe;



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

	@Id
	@GeneratedValue
	@Column(name="id")
	private int id;
	
	@Column(name="nome")
	private String nome;
	
	@OneToOne
	@JoinColumn(name="idClasse")
	private Classe classe;


//todos com seus devidos getters and setters...

Abraços,

J.