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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.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 维护JPA实体_Java_Jpa - Fatal编程技术网

Java 维护JPA实体

Java 维护JPA实体,java,jpa,Java,Jpa,我们正处于使用JPA的项目的编码阶段。我们使用Netbeans中的工具根据模式生成JPA实体。它工作得很好,但像往常一样,从那时起,我们不得不对实体进行一些定制 我们对模式进行了适当的大小更改(添加了一个表,并交换了其他模式之间的关系),因此需要更新实体。我们无法重新生成它们,因为我们必须去重新应用我们所有的定制,所以我们都是手工完成的。没什么大不了的,只是比我想象的要花更多的时间 定制包括我们添加的命名查询、级联类型、我们自己的to-String方法、equals和hash-code方法。我考

我们正处于使用JPA的项目的编码阶段。我们使用Netbeans中的工具根据模式生成JPA实体。它工作得很好,但像往常一样,从那时起,我们不得不对实体进行一些定制

我们对模式进行了适当的大小更改(添加了一个表,并交换了其他模式之间的关系),因此需要更新实体。我们无法重新生成它们,因为我们必须去重新应用我们所有的定制,所以我们都是手工完成的。没什么大不了的,只是比我想象的要花更多的时间

定制包括我们添加的命名查询、级联类型、我们自己的to-String方法、equals和hash-code方法。我考虑创建扩展实体的类,以添加到toString、equals和hascode方法中,这样,如果我们重新生成它们,它们就不会丢失。但我不确定级联类型和命名查询


有没有更好的办法,还是这只是一厢情愿?我相信这只是一厢情愿。生成实体并扩展它们只会给您带来一组不同的问题。您生成的实体必须被注释为@MappedSuperclass,并且没有表名-加上您的扩展可能必须重复一些注释,再加上您必须调整您的命名查询定制,有时……这只是一个麻烦

通常,从数据库模式生成实体是一次性的,永远需要手工维护

然而,从实体生成数据库模式可能需要更长的时间。然而,即使这样,您也必须小心地管理模式迁移的相关问题


一句话——同步持久实体和数据库模式需要仔细的手动操作。

谢谢您的回答。这和我的想法差不多。我想我只是希望我做错了什么,或者没有用正确的方式思考,肯定有更好的方式。更多可能有用的信息可以在这里找到: