[Hibernate] - Dúvida com chave primária

Boa tarde…

Estou desenvolvendo uma aplicação com Hibernate Annotations e me deparei com a seguinte situação:

Tenha minha tabela ESTADO:

Campos
EST_UF varchar(2) PK
EST_PAI_CODIGO integer FK (Tabela de Paises)
EST_NOME varchar(60)

bom a tabela portanto tem como campo chave o EST_UF que é varchar.

No momento de fazer o mapeamento fiz da seguinte forma, mas não sei se esta correto:

@Entity
@Table(name="estado")
public class Estado implements IPojo {

	@Id
	@Column(name="est_uf", length=2)
	private String estUf;
	
	@Column(name="est_nome", length=60)
	private String estNome;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="paiCodigo", table="pais")
	private Pais pais;
	
	@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY)
	private Set<Municipio> municipios;
	
	public Estado(){
		municipios = new HashSet<Municipio>();
	}
	
	public Estado(String uf, String nome){
		super();
		this.estUf = uf;
		this.estNome = nome;
	}

	public String getEstUf() {
		return estUf;
	}

	public void setEstUf(String estUf) {
		this.estUf = estUf;
	}

	public String getEstNome() {
		return estNome;
	}

	public void setEstNome(String estNome) {
		this.estNome = estNome;
	}

	public Pais getPais() {
		return pais;
	}

	public void setPais(Pais pais) {
		this.pais = pais;
	}
	
	public Set<Municipio> getMunicipios() {
		return municipios;
	}
	
	public List<Municipio> getListaMunicipio() {
		return new ArrayList<Municipio>(municipios);
	}
		
	public void setMunicipios(Set<Municipio> municipios) {
		this.municipios = municipios;
	}
	
}

e entao está correto desta forma?

Boa tarde

Então seu mapeamento esta correto, acredito onde você terá mais duvidas é na parte de Pk:

A anotação @Id é usada para definir a chave Pk, ou seja, o valor unico da tabela, no seu caso você colocou a UF como PK, e isso esta correto sim, pois a UF é unica para cada estado.

Falou e boa sorte nos estudos.

Blz Caio…muito obrigado pela explicação…