JSF - select one menu

Galera do PJ, sou novo aqui e tenho uma duvida talvez de iniciante.
Tenho uma aplicação que cadastra um usuario, e nela eu criei um select one menu para listar todos os niveis de usuario do sistema.
Só que o select one menu retorna uma string e minha classe usuario tem um atributo de perfil e por isso dá erro em execução.

Se alguem tiver uma luz para esse problema eu agradeço a ajuda desde já.

Classe Usuario

@Entity
@NamedQueries( {
		@NamedQuery(name = "LoginUsuario", query = "SELECT user FROM Usuario user WHERE user.login = :login AND user.senha = :senha"),
		@NamedQuery(name = "Login.Matricula", query = "SELECT user FROM Usuario user WHERE user.login = :login AND user.matricula = :matricula"),
		@NamedQuery(name = "Login", query = "SELECT user FROM Usuario user WHERE user.login = :login"),
		@NamedQuery(name = "Nome", query = "SELECT user FROM Usuario user WHERE user.nome = :nome"),
		@NamedQuery(name = "Nome.Matricula", query = "SELECT user FROM Usuario user WHERE user.nome = :nome AND user.matricula = :matricula")})
public class Usuario implements Serializable {

	private static final long serialVersionUID = 1L;

	
    @Column(nullable = false)
	private String nome;

	@Id
	@Column(nullable = false)
	private int matricula;

	@Column(nullable = false)
	private int cpf;

    @Column(nullable = false)
	private int rg;

	//@Column(nullable = false)
	private String patente;
	//private String unidadeOperacional;

	@Column(nullable = false)
	private String login;

	@Column(nullable = false)
	private String senha;
	private String secao;
	private String email;

	@ManyToOne(cascade = CascadeType.ALL)
	@JoinColumn(name = "Perfil_id", referencedColumnName = "id")
	// @Column(nullable = false)
	private Perfil perfil;

	@ManyToOne(cascade = CascadeType.ALL)
	@JoinColumn(name = "Unidade_id", referencedColumnName = "id")
	// @Column(nullable = false)
	private Unidade unidade;

Classe Perfil

@Entity
@NamedQuery(name = "ConsultaPerfil", query = "SELECT perfil FROM Perfil perfil")
public class Perfil implements Serializable{

	private static final long serialVersionUID = 1L;

	@Id
	//@GeneratedValue(strategy = GenerationType.AUTO)
	@Column(nullable = false)
	private String id;

	@Column(nullable = false)
	private String descricao;

	@OneToMany(mappedBy = "perfil", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
	private Set<Usuario> usuarioCollection;

codigo do select one menu

<h:selectOneMenu value="#{actionFormUsuario.usuario.patente}" id="patente">
	<f:selectItem itemLabel="Administrador" itemValue="1" />
	<f:selectItem itemLabel="Operacional" itemValue="2"/>
	<f:selectItem itemLabel="Estrategico" itemValue="3"/>
	<f:selectItem itemLabel="Tatico" itemValue="4"/>
</h:selectOneMenu>

Espero que minhas informações possam ser util para alguem me ajudar

Desenvolvedores de JSF, preciso dos seus conhecimentos.
Compartilhem com os novatos do java e seus frameworks.

Mas afinal o valor do SelectOneMenu você quer guardar na propriedade patente ou na id do objeto Perfil?