Java 作为hibernate组件的内部类
基本上,这可能吗 医生说 组件是作为值类型而不是实体引用持久化的包含对象 与值类型一样,组件不支持共享引用。换句话说,两个人可以有相同的名字,但两个人对象将包含两个独立的名字对象,它们的值仅“相同” 值类型的主要区别特征是它们不定义自己的生命周期。我们说它们被定义其生命周期的其他东西(特别是一个实体,我们将在后面看到)所“拥有”Java 作为hibernate组件的内部类,java,hibernate,inner-classes,Java,Hibernate,Inner Classes,基本上,这可能吗 医生说 组件是作为值类型而不是实体引用持久化的包含对象 与值类型一样,组件不支持共享引用。换句话说,两个人可以有相同的名字,但两个人对象将包含两个独立的名字对象,它们的值仅“相同” 值类型的主要区别特征是它们不定义自己的生命周期。我们说它们被定义其生命周期的其他东西(特别是一个实体,我们将在后面看到)所“拥有” 非静态的内部类可以完美地融入其中,但我从未在实践中看到过示例。使用内部类作为组件有什么限制吗?JPA规范说: 可嵌入类必须符合第2.1节中规定的实体要求,但可嵌入类不标
非静态的内部类可以完美地融入其中,但我从未在实践中看到过示例。使用内部类作为组件有什么限制吗?JPA规范说: 可嵌入类必须符合第2.1节中规定的实体要求,但可嵌入类不标注为实体除外 第2.1节说: 实体类必须是顶级类
JPA规范规定: 可嵌入类必须符合第2.1节中规定的实体要求,但可嵌入类不标注为实体除外 第2.1节说: 实体类必须是顶级类
经过一些研究,我发现答案是否定的,这是不可能的
原因很简单,(据我所知)只与hibernate工具本身有关,而与任何架构问题无关。Hibernate要求组件类具有默认的无参数构造函数,并且无法实例化内部类(尽管它成功地接受了映射)。我希望Hibernate的未来版本将支持此功能。经过一些研究,我发现答案是不,这是不可能的
原因很简单,(据我所知)只与hibernate工具本身有关,而与任何架构问题无关。Hibernate要求组件类具有默认的无参数构造函数,并且无法实例化内部类(尽管它成功地接受了映射)。我希望Hibernate的未来版本将支持此功能。您必须将内部组件类标记为
static
您必须将内部组件类标记为static
Hibernate似乎忽略了JPA关于嵌入式的建议Hibernate似乎忽略了JPA关于嵌入式的建议Embeddeblesi尝试使用静态内部类(组件/嵌入式)但不工作我尝试使用静态内部类(组件/嵌入式)但不工作