Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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
Hibernate 在没有注释的情况下休眠基类_Hibernate_Jpa - Fatal编程技术网

Hibernate 在没有注释的情况下休眠基类

Hibernate 在没有注释的情况下休眠基类,hibernate,jpa,Hibernate,Jpa,我有一个项目,其中包括来自另一个项目的dto类,我无法修改。我希望保留它们的数据,但扩展或嵌入它们需要我通过添加适当的注释来修改它们 在这里使用xml是最好的解决方案,还是在那里我没有告诉hibernate在不注释另一个项目的类的情况下持久化一个嵌入式或组合类?您应该以某种方式向hibernate提供映射信息。有两种方法: 注释 XML映射 由于您希望使用另一个项目中的类,但无法对它们进行注释,因此唯一的选择是使用XML映射 不过,我建议您实现自己的持久化和转换层,即获取DTO->转换为实体

我有一个项目,其中包括来自另一个项目的dto类,我无法修改。我希望保留它们的数据,但扩展或嵌入它们需要我通过添加适当的注释来修改它们


在这里使用xml是最好的解决方案,还是在那里我没有告诉hibernate在不注释另一个项目的类的情况下持久化一个嵌入式或组合类?

您应该以某种方式向hibernate提供映射信息。有两种方法:

  • 注释
  • XML映射
由于您希望使用另一个项目中的类,但无法对它们进行注释,因此唯一的选择是使用XML映射

不过,我建议您实现自己的持久化和转换层,即获取DTO->转换为实体->持久化。它具有以下优点:

  • 更好的数据库模式。DTO可能无法很好地适应持久性
  • 更多的控制。在另一个项目中所做的更改可能会破坏/影响持久性。转换器通常更容易修复

  • 我认为你的论点很有道理。