1、
初次使用hibernate,在配置文件时出现下面的异常:
org.hibernate.boot.InvalidMappingException: Could not parse mapping document: com/myhibernatedemo/entity/Product.hbm.xml (RESOURCE)
*********************
Caused by: org.hibernate.boot.MappingException: Unable to perform unmarshalling at line number 6 and column 57. Message: cvc-pattern-valid: 对于类型为 'ClassNameType' 的模式 '([a-zA-Z_$][a-zA-Z\d_$]*\.)*[a-zA-Z_$][a-zA-Z\d_$]*', 值 'com/myhibernatedemo/entity' 不具有面有效性。 : origin(com/myhibernatedemo/entity/Product.hbm.xml)
错误原因是:不能解析映射文件。如下图所示,package的路径格式不支持,将上图标识格式更改成下图即可
不知道为什么上传的图片一直不能显示,就用文字说明:将Product.hbm.xml的package="com/myhibernatedemo/entity"更改为package="com.myhibernatedemo.entity"即可。
2、
这是主要是因为数据库驱动在5.0之前和之后去所改变,根据自己的数据库驱动做修改
org.hibernate.dialect.MySQL5Dialect:新版本的mysql方言
org.hibernate.dialect.MySQLDialect :老版本的mysql方言
如果你配置的是老版本的方言,可以修改成新版本的方言。
注: hibernate运行通过,但没有数据库没有创建表,可能原因
1.主键使用字符串过长
2.bean属性中有关键字
3.hibernate.cfg.xml文件中缺少了一个自动创建数据库表的语句:
4.检查setter//getter方法,看是否有例如boolean属性的getter方法为isXXX
5.修改数据库方言将数据库方言,即新老版本问题。
3、
Hibernate出现java.lang.NullPointerException异常,什么问题?位置代码如图所示
为什么会出现空指针异常呢?
方框为添加的内容,添加后就不会出现空指针异常问题了。应该是静态代码块优先执行的原因。
4、Could not locate getter method for property [cn.itcast.entity3.User#uid]
可能是实体类的get、set方法不对,仔细检查