Of five options in a selectOneMenu I chose the second option and persisted the entity. On edit the persisted entity selectOneMenu always has the last option as its value.
For example,
<h:selectOneMenu value="#{userHome.user.leader}">
    <f:selectItems value="#{userHome.availableLeaders}" var="leader" itemLabel="#        {leader.name}" itemValue="#{leader}"/>
</h:selectOneMenu>
where availableLeaders is a list of users populated @PostConstruct method.
I am expecting the selectOneMenu to have the second option(chosen) on edit.
@FacesConverter(forClass = User.class, value = "userConverter")
public class UserConverter implements Converter {
    public UserConverter() {
    }
    @Override
    public Object getAsObject(FacesContext context, UIComponent component,
            String value) {
            EntityManagerFactory emf =     Persistence.createEntityManagerFactory("DefaultPersistenceUnit");
            EntityManager em = emf.createEntityManager();
            Query q = em.createQuery("select query");
        return q.resultList().get(0);
    }
    @Override
    public String getAsString(FacesContext context, UIComponent component,
            Object value) {
        return ((User) value).getName();
    }}
In User.java
public boolean equals(Object other) {
    if (this.getClass().isInstance(other)) {
        return true;
    } else {
        return false;
    }
}
public int hashCode() {
    HashCodeBuilder builder = new HashCodeBuilder();
    builder.append(getId());
    builder.append(getName());
    return builder.toHashCode();
}
 
     
    