新手使用hibernate过程中会遇到一些无法映射实体类的错误,比较难发现的错误如下:
1. no persistent classes found for query class: from (连接sqlserver数据库)
2.nested exception is org.hibernate.MappingException: Unknown entity(连接mysql数据库)
原因如下:
实体类和表映射错误,本质原因是使用注解映射时导入的错误:
必须导入javax.persistence下的包(标准的注释):通过这种方式,您在其他JPA实现理论上可以运行您的代码
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
org.hibernate.annotations下的包: hibernate包是javax包的补充,但不能替代
import org.hibernate.annotations.Entity;
import org.hibernate.annotations.Table;
如果想使用@org.hibernate.annotations所包含的特殊的功能的话,需要在import @javax.persistence的基础上增加注释,如下:
@Entity
@org.hibernate.annotations.Entity(optimisticLock=OptimisticLockType.ALL)
public class MyEntity implements Serializable {
...
}