栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Hibernate初级

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Hibernate初级

一 XSD 1 问题 ① 复合主键 Ⅰ 报错详情
Could not parse mapping document: null (INPUT_STREAM)
org.hibernate.boot.InvalidMappingException: Could not parse mapping document: null (INPUT_STREAM)
	at org.hibernate.boot.jaxb.internal.InputStreamXmlSource.doBind(InputStreamXmlSource.java:46)

Caused by: org.hibernate.boot.MappingException: Unable to perform unmarshalling at line number 7 and column 13. Message: cvc-enumeration-valid: Value 'true' is not facet-valid with respect to enumeration '[false, proxy]'. It must be a value from the enumeration. : origin(null)

Caused by: javax.xml.bind.UnmarshalException: null

报错的意思是使用了未定义的枚举值true,就报错了

Ⅱ 分析

首先看报错的源文件,定位到true这里:

		
            
                
                    
                
            
        

找到hibernate-core-5.0.11.Final.jar包,反编译看到文件-org.hibernate.xsd.mapping.legacy-mapping-4.0.xsd里的内容,找到composite-id的规范定义:


        省略
                        
                    
                    省略
    

再找key-many-to-one对应的CompositeKeyManyToOneType的定义,进而找到:



        
            
            
        
    

这里发现枚举值不包含true的。因此进行xml验证时报错了

Ⅲ 结论
  • 请不要使用没定义的枚举值
二 属性 1 懒加载 ① lazy 依赖顺序
lazy="true"
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/888586.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号