ll_feng 2009-03-30 13:42
浏览 417
已采纳

一个困扰N天的问题:Unknown entity

用maven整合ssh2.遇到一个问题。在对实体做持久化时报错:
org.springframework.orm.hibernate3.HibernateSystemException: Unknown entity: cn.lvlf.ssh.demo.model.User...
...
Caused by: org.hibernate.MappingException: Unknown entity: cn.lvlf.ssh.demo.model.User...
...

下面将代码贴出来希望能有人指点一下。不胜感谢!
applicationContext.xml:
[code="java"]
...










${hibernate.dialect}

false

org.hibernate.cache.EhCacheProvider

true





cn.lvlf.ssh.demo.model.*




...
[/code]

User.java
[code="java"]
package cn.lvlf.ssh.demo.model;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name = "t_user")
public class User implements java.io.Serializable {

private Long id;
private String name;
private String password;

public User() {
}

public User(String name, String password) {
    this.name = name;
    this.password = password;
}

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id", unique = true, nullable = false)
public Long getId() {
    return this.id;
}

public void setId(Long id) {
    this.id = id;
}

@Column(name = "name")
public String getName() {
    return this.name;
}

public void setName(String name) {
    this.name = name;
}

@Column(name = "password")
public String getPassword() {
    return this.password;
}

public void setPassword(String password) {
    this.password = password;
}

}
[/code]

数据库(MySql的):
t_user:
+----------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+----------------+
| id | bigint(20) | NO | PRI | NULL | auto_increment |
| name | varchar(255) | YES | | NULL | |
| password | varchar(255) | YES | | NULL | |
+----------+--------------+------+-----+---------+----------------+

测试代码:
DaoTest.java
[code="java"]
public class DaoTest {

@Test
public void testUserDao(){
    AbstractApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
    UserDao userDao = (UserDao)ctx.getBean("userDao");
    cn.lvlf.ssh.demo.model.User user = new User("zhangsan","sssss");
    userDao.saveUser(user);

    List<User> users = userDao.getAllUsers();
    Assert.assertTrue(users.size()>0);
}

}
[/code]

  • 写回答

2条回答 默认 最新

  • qq_123 2009-03-30 15:57
    关注

    可能是路径问题
    例如:
    你的实体存放目录是com.ss3.demo.entity.test,里面存放着很多实体类。
    但是你的packagesToScan就要写成com.ss3.demo.entity.*,千万不要写成com.ss3.demo.entity.test.*,否则不会被映射,换句话说就是配置映射目录要比实际少一层就可以了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?