Problemas com hibernate

Olá pessoal será q alguem pode me ajudar com esse erro

Caused by: org.hibernate.MappingException: Could not determine type for: entidade.Cliente, for columns: [org.hibernate.mapping.Column(cliente)]
at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:266)
at org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:253)
at org.hibernate.mapping.RootClass.validate(RootClass.java:193)
at org.hibernate.cfg.Configuration.validate(Configuration.java:1102)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1287)
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)

classe HibernateUtil

public class HibernateUtil {
    private static final SessionFactory sessionFactory;

    private static final ThreadLocal threadSession =
            new ThreadLocal();

    private static final ThreadLocal threadTransaction =
            new ThreadLocal();

    static {
        AnnotationConfiguration cfg = new AnnotationConfiguration();

        cfg.addAnnotatedClass(Pessoa.class);
        cfg.addAnnotatedClass(Cliente.class);
        

        SchemaUpdate schemaUpdate = new SchemaUpdate(cfg);
        schemaUpdate.execute(true,true);

        sessionFactory = cfg.buildSessionFactory();
    }
   public static Session getSession() {
        Session s = (Session) threadSession.get();
        try {
            if (s == null) {
                s = sessionFactory.openSession();
                threadSession.set(s);
            }
        } catch (HibernateException ex) {
            ex.printStackTrace();
        }
        return s;
    }

    public static void closeSession() {
        try {
            Session s = (Session) threadSession.get();
            threadSession.set(null);
            if (s != null && s.isOpen())
                s.close();
        } catch (HibernateException ex) {
            ex.printStackTrace();
        }
    }

    public static void beginTransaction() {
        Transaction tx = (Transaction) threadTransaction.get();
        try {
            if (tx == null) {
                tx = getSession().beginTransaction();
                threadTransaction.set(tx);
            }
        } catch (HibernateException ex) {
            ex.printStackTrace();
        }
    }

    public static void commitTransaction() {
        Transaction tx = (Transaction) threadTransaction.get();
        try {
            if ( tx != null && !tx.wasCommitted()
            && !tx.wasRolledBack() )
                tx.commit();
            threadTransaction.set(null);
        } catch (HibernateException ex) {
            rollbackTransaction();
            ex.printStackTrace();
        }
    }

    public static void rollbackTransaction() {
        Transaction tx = (Transaction) threadTransaction.get();
        try {
            threadTransaction.set(null);
            if ( tx != null && !tx.wasCommitted()
            && !tx.wasRolledBack() ) {
                tx.rollback();
            }
        } catch (HibernateException ex) {
            ex.printStackTrace();
        } finally {
            closeSession();
        }
    }
}

classe cliente

public class Cliente {

  @Id
 private Long Id ;

    @OneToOne(mappedBy="pessoa")

    @PrimaryKeyJoinColumn
    private Pessoa pessoa ;

    @Column (length=10)
    private String nomeCli ;

     
    public void setCliente(Pessoa pessoa) {
        this.pessoa = pessoa;
    }

    public Long getId() {
        return Id;
    }

    public void setId(Long Id) {
        this.Id = Id;
    }

    public String getNomeCli() {
        return nomeCli;
    }

    public void setNomeCli(String nomeCli) {
        this.nomeCli = nomeCli;
    }

    // set e gets da classe do atributo da classe Pessoa
    public Pessoa getPessoa() {
        return pessoa;
    }

    public void setPessoa(Pessoa pessoa) {
        this.pessoa = pessoa;
    }



}

sou iniciante XD

Valeu