为允许值javax.persistence.schema-generation.database.actionARE
create成功这绝对没有选择使用任何这些值,也没有在他们的规范中看到任何意义 - 假设你不希望你的应用程序的用户启动应用程序一次(with create),破解persistence.xml文件,重新打包你的应用程序和使用它与none.如何使用它们在应用程序重启时持久化Java对象呢?
我知道Hibernate的功能hibernate.hbm2ddl.auto很棒,但我正试图解决JPA 2.1实现便携式方法的难题.
小智 8
几乎没有什么神秘之处(它们在规范中定义,或者在任何体面的JPA实现的文档中定义).这在创建EMF时运行(或者如果通过持久性调用,则作为单独的前期操作).
"none"意味着什么都不做......所以像JPA一直做的事情就是持久性.它不是"为任何目的服务",只是为了不做任何额外的事情!
"create"表示为实体创建表(因此假设它不存在).显然,大多数JPA提供程序将在创建之前检查表的存在,因此它不会"在后续使用中失败".
"drop" 表示删除实体的表(因此,当作为独立进程运行时,例如在测试后清理).
"drop-and-create"删除并为实体创建表,所以摆脱那些并从头开始.与持久化数据无关,但这些选项都不是.
如上所述,其中一些选项对测试最有用.在现实世界中,大多数人会生成DDL,对其进行优化以满足其DBA要求,并手动生成它,然后只运行JPA,因此在运行时不使用此属性
| 归档时间: |
|
| 查看次数: |
3242 次 |
| 最近记录: |