我刚把我的persistence.xml从
<property name="toplink.ddl-generation" value="drop-and-create-tables"/>
至
<property name="toplink.ddl-generation" value="create-tables"/>
现在,正如我所期望的那样,数据在应用程序运行之间持久化。然而,这并不是我所期望的这种设置的工作方式。drop-and-create不应该只在表丢失或不匹配时创建吗?
我只是想知道这是不是标准的,或者可能是我没有正确使用JPA的迹象,当设置了drop-and-create时,表太容易被not了。
发布于 2012-05-04 18:51:32
这是有意的行为。
create-tables
只会尝试创建表,如果表已经存在,则不会删除或替换它,而是使用现有的表。这不会检查该表是否与您尝试创建的表匹配-只检查具有给定名称的表是否存在。如果您的方案发生更改,您将不得不手动删除该表(或通过另一种机制),以便下次重新创建该表。
drop-and-create-tables
将首先删除现有表,然后创建新表。请注意,当表被删除时,这将丢失表中的所有数据。
发布于 2012-05-04 18:49:35
是的,我认为你的观察是正确的。至少我也有同样的问题。如果你所描述的行为有另一种选择,那就太好了。
https://stackoverflow.com/questions/10447275
复制相似问题