I have created a project using spring3 and hibernate4. But it fails to run.The Code and Root Cause are provided below.
@Entity
@Table(name = "Songs")
public class Song implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID")
Integer id;
@Column(name = "Name", length = 100, nullable = false)
String name;
@Column(name = "Category", length = 100, nullable = true)
String category;
@Column(name = "Singer", length = 100, nullable = true)
String singer;
@Column(name = "Author", length = 100, nullable = true)
String author;
//getter & setter
And I have DAO
@Repository("musicDao")
public class MusicDaoImpl implements MusicDao {
private SessionFactory sessionFactory;
private TransactionTemplate transactionTemplate;
public TransactionTemplate getTransactionTemplate() {
return transactionTemplate;
}
public void setTransactionTemplate(TransactionTemplate transactionTemplate) {
this.transactionTemplate = transactionTemplate;
}
public SessionFactory getSessionFactory() {
return sessionFactory;
}
@Autowired
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
@Transactional
public void insert(Song m) {
sessionFactory.getCurrentSession().save(m);
}
@Transactional
public void update(Song m) {
sessionFactory.getCurrentSession().update(m);
}
@Transactional
public void delete(int id) {
// TODO Auto-generated method stub
Song s = (Song) sessionFactory.getCurrentSession().get(Song.class, id);
sessionFactory.getCurrentSession().delete(s);
}
@Transactional
public Song getMusic(int id) {
// TODO Auto-generated method stub
return (Song) sessionFactory.getCurrentSession().get(Song.class, id);
}
@SuppressWarnings("unchecked")
@Transactional
public List<Song> allSong() {
// TODO Auto-generated method stub
// Query query = sessionFactory.getCurrentSession().createQuery("from songs");
// return query.list();
return sessionFactory.getCurrentSession().createQuery("from songs").list();
}
}
I use MySQL and Hibernate. My error is not map
Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: songs is not mapped [from songs]
at org.hibernate.hql.internal.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:180)
at org.hibernate.hql.internal.ast.tree.FromElementFactory.addFromElement(FromElementFactory.java:110)
at org.hibernate.hql.internal.ast.tree.FromClause.addFromElement(FromClause.java:93)
at org.hibernate.hql.internal.ast.HqlSqlWalker.createFromElement(HqlSqlWalker.java:324)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:3420)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:3309)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:706)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:562)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:299)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:247)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:248)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:183)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:136)
I can't get allSong method. Why Hibernate not mapped???
"from songs"
is actually HQL (HIbernate Query Language) so you should be using the OBJECT NAME that corresponds to your Table.
In this case, try "from Song"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With