“org.hibernate.MappingException: Unknown entity” 异常解决

异常信息:

 Exception in thread "main" org.hibernate.MappingException: Unknown entity: com.red.bean.Book
 at org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:548)
 at org.hibernate.impl.SessionImpl.getEntityPersister(SessionImpl.java:1338)
 at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:96)
 at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:186)
 at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
 at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:175)
 at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
 at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
 at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:535)
 at org.hibernate.impl.SessionImpl.save(SessionImpl.java:523)
 at org.hibernate.impl.SessionImpl.save(SessionImpl.java:519)
 at com.red.test.TestBook.main(TestBook.java:26)

 

报错代码:

import java.io.Serializable;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Column;
import org.hibernate.annotations.Entity;
@Entity
@Table( name = "t_book")
public class Book implements Serializable 
{
 private static final long serialVersionUID = 1L;
 @Id
 private Integer gid = 0;
 
 @Column( name = "name")
 private String name = "";
 ...
 


原因分析:

  hibernate使用注解方式映射时,@Entity实现类引入错误,应该引入import javax.persistence.Entity;而不是import org.hibernate.annotations.Entity;

 

正确代码如下:

import java.io.Serializable;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Column;
import javax.persistence.Entity;

@Entity
@Table( name = "t_book")
public class Book implements Serializable 
{
 private static final long serialVersionUID = 1L;
 @Id
 private Integer gid = 0;
 ...

 

另外,如果在hibernate.cfg.xml文件中没有指定相应的bean类com.red.bean.Book,也会报该异常,正确的做法如下:

<hibernate-configuration>
<session-factory>
...
 <mapping class="com.red.bean.Book"/>
</session-factory>
</hibernate-configuration>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值