gpt4 book ai didi

java - hibernate 未映射

转载 作者:行者123 更新时间:2023-11-29 02:22:25 27 4
gpt4 key购买 nike

我已经使用 spring3 和 hibernate4 创建了一个项目。但是它无法运行。下面提供了代码和根本原因。

@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

我有 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();
}
}

我使用 MySQL 和 Hibernate。我的错误是没有 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)

我无法获取 allSong 方法。为什么 Hibernate 没有映射???

最佳答案

“from songs” 实际上是 HQL(HIbernate 查询语言),因此您应该使用与您的表相对应的 OBJECT NAME

在这种情况下,尝试“来自歌曲”

关于java - hibernate 未映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29597392/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com