Como funciona relacionamento com hibernate?

Tenho uma dúvida como exatamente funciona relacionamento com o hibernate eu fazendo isso:[code]package br.com.solutec.gestor.model.acesso;

/**
*

  • @author Rodrigo Rocha
    */

/**
*@hibernate.class

  • table=“tbProgramas”
    */

public class Programas {
private Integer idPrograma;
private String programa;
private String descricao;
private NivelAcesso nivelAcesso;
/** Creates a new instance of Programas */
public Programas() {
}

/**
 *@hibernate.id
 *      generator-class = "assigned"
 */
public Integer getIdPrograma() {
    return idPrograma;
}

public void setIdPrograma(Integer idPrograma) {
    this.idPrograma = idPrograma;
}

/**
 *@hibernate.property
 *  not-null="true"
 *  length="30"
 */    
public String getPrograma() {
    return programa;
}

public void setPrograma(String programa) {
    this.programa = programa;
}  

/**
 *@hibernate.property
 *  not-null="true"
 *  length="30"
 */ 
public String getDescricao() {
    return descricao;
}

public void setDescricao(String descricao) {
    this.descricao = descricao;
}

/**
 *@hibernate.many-to-one
 *  column="idProgramas"
 *  not-null="true"
 *  class="br.com.solutec.gestor.model.acesso.NivelAcesso"
 */
public NivelAcesso getNivelAcesso() {
    return nivelAcesso;
}

public void setNivelAcesso(NivelAcesso nivelAcesso) {
    this.nivelAcesso = nivelAcesso;
}

}[/code]

Sendo que minhas tabelas tem a seguinte formação:

tbProgramas
idProgramas
programas
descricao

e

tbNivAcesso
idNivel
idProgramas
idUsuario
codAcesso

Eu estou dizendo que a tabela tbNivAcesso estará relacionada com tbPrograms por idProgramas isso com 1 para n ?