Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 作为hibernate组件的内部类_Java_Hibernate_Inner Classes - Fatal编程技术网

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尝试使用静态内部类(组件/嵌入式)但不工作我尝试使用静态内部类(组件/嵌入式)但不工作