Hibernate 未映射

Tep*_*i14 4 java mysql spring hibernate

我使用 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
Run Code Online (Sandbox Code Playgroud)

我有 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();
    }
}
Run Code Online (Sandbox Code Playgroud)

我使用 MySQL 和 Hibernate。我的错误不是地图

@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
Run Code Online (Sandbox Code Playgroud)

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

jmc*_*mcg 5

"from songs"实际上是 HQL(HIbernate 查询语言),因此您应该使用与您的表相对应的对象名称。

在这种情况下,请尝试"from Song"