Ragazzi ho un problema.
Ho questa classe bean
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "member", catalog = "login")
public class Member{
private Integer id;
private String username;
private String password;
private String nome;
public Member() {
}
public Member(String username, String password, String nome) {
this.username = username;
this.password = password;
this.nome = nome;
}
@Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "id", unique = true, nullable = false)
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
@Column(name = "username", length = 20)
public String getUsername() {
return this.username;
}
public void setUsername(String username) {
this.username = username;
}
@Column(name = "password", length = 20)
public String getPassword() {
return this.password;
}
public void setPassword(String password) {
this.password = password;
}
@Column(name = "nome", length = 50)
public String getNome() {
return this.nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String toString(){
String s;
s=id+""+username+""+password+""+nome;
return s;
}
}
il dao
import java.util.List;
import org.springframework.orm.hibernate3.support.Hiberna teDaoSupport;
import org.springframework.transaction.annotation.Transac tional;
public class MemberDaoHibernateSupport extends HibernateDaoSupport implements MemberDao {
@Transactional
public int memberCount() {
return findAllMember().size();
}
@Transactional
public void delete(int id) {
Member utente = (Member) getHibernateTemplate().get(Member.class, id);
getHibernateTemplate().delete(utente);
}
@Transactional(readOnly = true)
public List<Member> findAllMember() {
return getHibernateTemplate().find("from Member");
}
@Transactional
public Member findById(int id) {
return (Member) getHibernateTemplate().get(Member.class, id);
}
@Transactional
public void insert(Member utente) {
getHibernateTemplate().saveOrUpdate(utente);
}
@Transactional
public void update(Member utente) {
getHibernateTemplate().saveOrUpdate(utente);
}
}
e anche
import java.util.List;
import org.springframework.orm.hibernate3.HibernateTempla te;
import org.springframework.transaction.annotation.Transac tional;
public class MemberDaoImpl implements MemberDao {
private HibernateTemplate hibernateTemplate;
public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
this.hibernateTemplate = hibernateTemplate;
}
public HibernateTemplate getHibernateTemplate() {
return hibernateTemplate;
}
@Transactional
public int memberCount() {
return findAllMember().size();
}
@Transactional
public void delete(int id) {
Member utente = (Member) hibernateTemplate.get(Member.class, id);
hibernateTemplate.delete(utente);
}
@Transactional(readOnly = true)
public List<Member> findAllMember() {
return hibernateTemplate.find("from Member");
}
@Transactional
public Member findById(int id) {
return (Member) hibernateTemplate.get(Member.class, id);
}
@Transactional
public void insert(Member utente) {
hibernateTemplate.saveOrUpdate(utente);
}
@Transactional
public void update(Member utente) {
hibernateTemplate.saveOrUpdate(utente);
}
}
Appena vado a fare il meodo di test funzionano tutti (insert , update ,ecc) tranne il findAll
import java.util.List;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFacto ry;
import org.springframework.core.io.ClassPathResource;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
BeanFactory ctx = new XmlBeanFactory(new ClassPathResource("beans.xml"));
MemberDao udi = (MemberDao)ctx.getBean("memberDao");
System.out.println("Lista Membri:");
List<Member> membri = udi.findAllMember();
for (Member b : membri)
System.out.println("\t\t"+b);
}
}
e mi da questo errore
Exception in thread "main" org.springframework.orm.hibernate3.HibernateQueryE xception: unexpected token: Member near line 1, column 6 [from Member]; nested exception is org.hibernate.hql.ast.QuerySyntaxException: unexpected token: Member near line 1, column 6 [from Member]
at org.springframework.orm.hibernate3.SessionFactoryU tils.convertHibernateAccessException(SessionFactor yUtils.java:657)
at org.springframework.orm.hibernate3.HibernateAccess or.convertHibernateAccessException(HibernateAccess or.java:412)
at org.springframework.orm.hibernate3.HibernateTempla te.doExecute(HibernateTemplate.java:424)
at org.springframework.orm.hibernate3.HibernateTempla te.executeWithNativeSession(HibernateTemplate.java :374)
at org.springframework.orm.hibernate3.HibernateTempla te.find(HibernateTemplate.java:921)
at org.springframework.orm.hibernate3.HibernateTempla te.find(HibernateTemplate.java:913)
at MemberDaoHibernateSupport.findAllMember(MemberDaoH ibernateSupport.java:34)
at Test.main(Test.java:27)
Caused by: org.hibernate.hql.ast.QuerySyntaxException: unexpected token: Member near line 1, column 6 [from Member]
at org.hibernate.hql.ast.QuerySyntaxException.convert (QuerySyntaxException.java:54)
at org.hibernate.hql.ast.QuerySyntaxException.convert (QuerySyntaxException.java:47)
at org.hibernate.hql.ast.ErrorCounter.throwQueryExcep tion(ErrorCounter.java:82)
at org.hibernate.hql.ast.QueryTranslatorImpl.parse(Qu eryTranslatorImpl.java:281)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompil e(QueryTranslatorImpl.java:180)
at org.hibernate.hql.ast.QueryTranslatorImpl.compile( QueryTranslatorImpl.java:134)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQL QueryPlan.java:101)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQL QueryPlan.java:80)
at org.hibernate.engine.query.QueryPlanCache.getHQLQu eryPlan(QueryPlanCache.java:94)
at org.hibernate.impl.AbstractSessionImpl.getHQLQuery Plan(AbstractSessionImpl.java:156)
at org.hibernate.impl.AbstractSessionImpl.createQuery (AbstractSessionImpl.java:135)
at org.hibernate.impl.SessionImpl.createQuery(Session Impl.java:1650)
at org.springframework.orm.hibernate3.HibernateTempla te$30.doInHibernate(HibernateTemplate.java:923)
at org.springframework.orm.hibernate3.HibernateTempla te.doExecute(HibernateTemplate.java:419)
... 5 more
non capisco qual e il problema.Ho mappato la classe Member ma sembra non riconoscere il comando hql "from Member".
Vi posto pure il mapping
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="Member" table="MEMBER">
<id name="id" type="java.lang.Integer">
<column name="ID" />
<generator class="assigned" />
</id>
<property name="username" type="java.lang.String">
<column name="USERNAME" />
</property>
<property name="password" type="java.lang.String">
<column name="PASSWORD" />
</property>
<property name="nome" type="java.lang.String">
<column name="NOME" />
</property>
</class>
</hibernate-mapping>
potete aiutarmi a capire il problema ?? grazie in anticipo