Problema com annotations e Spring

Ae galera, eu fiz uma aplicação simples pra testar Spring com Hibernate Annotations, mas estou com 1 problema… quando mando salvar um objeto Aluno, ele retorna Unknown Entity hibernate.model.Aluno
sendo que a classe existe… ta ai meu applicationContext.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
    <!-- Instância de DriverManagerDataSource do bean sessionFactory !-->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName">
            <value>com.mysql.jdbc.Driver</value>
        </property>
        <property name="url">
            <value>jdbc:mysql://localhost:3306/urso</value>
        </property>
        <property name="username">
            <value>root</value>
        </property>
        <property name="password">
            <value>root</value>
        </property>
    </bean>
    <!-- Instância de AnnotationSessionFactoryBean usada pelo bean genericDao !-->
    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
        <property name="dataSource">
            <ref local="dataSource"/>
        </property>
        <property name="annotatedClasses">
            <list>
                <value>hibernate.model.Aluno</value>
            </list>
        </property>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">${hibernate.dialect}
                </prop>
            </props>
        </property>
    </bean>
    <!-- Instância de GenericHibernateDao !-->
    <bean id="genericDao" class="hibernate.dao.GenericHibernateDao">
        <property name="sessionFactory" ref="sessionFactory"/>
    </bean>
    <!-- instância de AnnotationConfiguration !-->
    <bean id="cfg" class="org.hibernate.cfg.AnnotationConfiguration">
    </bean>
</beans>

q q tem de errado???

Posta como tá a classe:

hibernate.model.Aluno

Estou utilizando de forma semelhante, e não estou tendo problema…

package hibernate.model;


import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.Entity;

@Entity
public class Aluno {
    
    @Id @GeneratedValue(strategy=GenerationType.IDENTITY) 
    private String codigo;
    private String nome;
    private String matricula;

    public String getCodigo() {
        return codigo;
    }

    public void setCodigo(String codigo) {
        this.codigo = codigo;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getMatricula() {
        return matricula;
    }

    public void setMatricula(String matricula) {
        this.matricula = matricula;
    }
    
}

Aluno já existe no BD?

Caso queira que ele crie, utiliza a seguinte propriedade:

...
<prop key="hibernate.hbm2ddl.auto">create
                </prop>

quero q ele crie sim… me explica uma coisa, colocando isso ae no appContext la, como q eu faço ele criar?

<property name="hibernateProperties">  
            <props>  
                <prop key="hibernate.dialect">${hibernate.dialect}  
                </prop>  
                <prop key="hibernate.hbm2ddl.auto">create  
                </prop>
            </props>  
</property> 

No seu caso seria dessa forma…

tpw, vc coloka essa property la, dae qndo isntancia o sessionFactory ele cria a tabela? eu to começando a emxer com spring, to bateno cabeça dimais, isso ae é so 1 teste pra ver como q funciona

…exato…depois que ele criar a tabela, ao invés de create, vc pode colocar update…

…rpz boa sorte…eu também tô apanhando um pouco…mas vale apena…o spring he show…

adicionei a prop q vc passou, mas n mudo nada, continua o erro, e nao crio a tabela

fiquei em dúvida em relação ao seu dialect…vc recebe de algum arquivo de conf? ou tem algum properties com essas informações?

eu tenho 1 hibernate.properties mas n sei se ta sendo usado

eu dei uma lida nuns guias, alguns falar rpa usar hibernateTemplate, qual a diferença pra chamar direto o sessionFactory??

vc pode utilizar uma outro esquema do spring…que seria:

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location">
            <value>WEB-INF/jdbc.properties</value>
        </property>
    </bean>

com isso vc carrega uma properties…

dai ele tem o seguinte conteudo:

dialect=org.hibernate.dialect.PostgreSQLDialect

e vc utiliza da seguinte maneira:

<property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">${dialect}
                </prop>
                <prop key="hibernate.show_sql">true
                </prop>
                <prop key="hibernate.hbm2ddl.auto">update
                </prop>
            </props>
        </property>

skeci de falar 1 coisa, eu to fazendo 1 app desktop hehehe eu vi ae WEB INF, axo q isso eh web ne? eu n sei nem como faz qlq coisa web hahaha to fazendo isso ae desktop

[quote=barbafh3][code]
package hibernate.model;

import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.Entity;

@Entity
public class Aluno {

@Id @GeneratedValue(strategy=GenerationType.IDENTITY) 
private String codigo;
private String nome;
private String matricula;

public String getCodigo() {
    return codigo;
}

public void setCodigo(String codigo) {
    this.codigo = codigo;
}

public String getNome() {
    return nome;
}

public void setNome(String nome) {
    this.nome = nome;
}

public String getMatricula() {
    return matricula;
}

public void setMatricula(String matricula) {
    this.matricula = matricula;
}

}
[/code][/quote]

Importa javax.persistence.Entity e não org.hibernate.annotations.Entity

[]´s

[quote=wariows][quote=barbafh3][code]
package hibernate.model;

import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.Entity;

@Entity
public class Aluno {

@Id @GeneratedValue(strategy=GenerationType.IDENTITY) 
private String codigo;
private String nome;
private String matricula;

public String getCodigo() {
    return codigo;
}

public void setCodigo(String codigo) {
    this.codigo = codigo;
}

public String getNome() {
    return nome;
}

public void setNome(String nome) {
    this.nome = nome;
}

public String getMatricula() {
    return matricula;
}

public void setMatricula(String matricula) {
    this.matricula = matricula;
}

}
[/code][/quote]

Importa javax.persistence.Entity e não org.hibernate.annotations.Entity

[]´s[/quote]

Outra coisa, se vopê anota o atributo ao invés de anotar o ‘get’, o hibernate acessa diretamente o campo via reflection, fazendo desnecessários os ‘set’ e ‘get’… Deste modo, você pode se preocupar em criar um modelo menos anêmico…

ae wariows era so o import mesmo, deu outro erro depois, ele nao aceito o codigo como String, dae mudei rpa int, e funciono certim… agora vo testa alterar, deletar e listar xD vamo v no q q da

tou com uma duvida, eu fiz salva, altera, deleta e buscar 1… mas n to sabendo como fazer o metodo pra buscar todos… como q da pra faze isso?
pq get e load so retornam object e nao list…

[quote=barbafh3]tou com uma duvida, eu fiz salva, altera, deleta e buscar 1… mas n to sabendo como fazer o metodo pra buscar todos… como q da pra faze isso?
pq get e load so retornam object e nao list…[/quote]

tá usando a Session do hibernate ou o EntityManager?

to usando o session q defini no appContext