gpt4 book ai didi

java - 如何使用带有 BeanValidation 约束的 Hibernate SchemaExport 导出数据库架构?

转载 作者:行者123 更新时间:2023-12-01 12:52:15 24 4
gpt4 key购买 nike

请查看我的要求:使用 SchemaExport 导出应用了 BeanValidation 约束的数据库架构(例如,@Length(32) 将创建数据库约束:column(32))。

在 Hibernate 4.1.x 中,我可以使用此处的 hack 代码:https://forum.hibernate.org/viewtopic.php?f=1&t=1024911&view=previous

但是上述黑客代码中所需的 Ejb3Configuration 类已在 Hibernate 4.3.5 中删除。

那么如何在不使用 Ejb3Configuration 的情况下导出应用了 BeanValidation 约束的数据库架构?

最佳答案

这样的事情应该有效:

PersistenceUnitDescriptorAdapter pu = new PersistenceUnitDescriptorAdapter() {
@Override
public List<String> getManagedClassNames() {
return Arrays.asList( MyClass.class.getName(), ... );
}
};

Map<Object, Object> settings = new HashMap<Object, Object>();
settings.put( "javax.persistence.schema-generation.scripts.action", "create" );
settings.put( "javax.persistence.schema-generation.scripts.create-target", "<path-to-export-file>" );
EntityManagerFactoryBuilderImpl factoryBuilder = new EntityManagerFactoryBuilderImpl( pu, settings );
factoryBuilder.generateSchema();

它依赖于 Hibernate 内部类,但您之前的解决方案也是如此。您可以在此处创建问题 - https://hibernate.onjira.com/browse/HHH - 解释您的用例。也许可以提供使用公共(public) API 的解决方案。

关于java - 如何使用带有 BeanValidation 约束的 Hibernate SchemaExport 导出数据库架构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24132167/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com