我正在使用JSF开发Java EE应用程序,使用EclipseLink2作为JPA安装,使用mySQL作为Netbeans的后端数据库。
应用程序正常工作,除非我向现有实体添加新属性或创建新实体。如果我在Persistance.xml文件中选择dropandcreate选项,应用程序将再次运行而不会出现错误,但它会删除包含先前条目的整个数据库。
当我开始制作时,在添加新实体时,我不能丢失数据库的数据。有没有办法克服这个问题。我试图使用数据库模式,但无法知道如何操作。
答案 0 :(得分:2)
您只有三个架构生成选项(source with more details):
如您所见,其中任何一个都不支持您必须保留数据和添加列的方案。您可能会发现自动模式生成不会支持许多其他方案,例如更改列类型和一般转换数据。
因为生成模式在您的情况下不起作用,所以最好将其保留为开发时间工具并学习自己编写模式以供生产。关于此事的更多意见可以在this讨论中找到。它与Hibernate有关,因此属性名称不同,但问题与EclipseLink相同。