Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/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
Java 正在运行中更改表架构!框架_Java_Playframework - Fatal编程技术网

Java 正在运行中更改表架构!框架

Java 正在运行中更改表架构!框架,java,playframework,Java,Playframework,在运行时更改数据库表模式的最佳方法是什么!框架我从客户端应用程序中获得了未指定数量的列,并且不能拥有域对象。为什么不使用Apache DDLUtils? 默认情况下,它不会在游戏中插入!但我在其他项目中使用它,它非常有用。 为什么不使用Apache DDLUtils? 默认情况下,它不会在游戏中插入!但我在其他项目中使用它,它非常有用。 另一种选择可能是使用无模式数据存储ala mongodb。似乎有一个mongo模块可供使用。另一个选择可能是使用无模式的数据存储ala mongodb。似乎有一

在运行时更改数据库表模式的最佳方法是什么!框架我从客户端应用程序中获得了未指定数量的列,并且不能拥有域对象。

为什么不使用Apache DDLUtils?
默认情况下,它不会在游戏中插入!但我在其他项目中使用它,它非常有用。

为什么不使用Apache DDLUtils?
默认情况下,它不会在游戏中插入!但我在其他项目中使用它,它非常有用。

另一种选择可能是使用无模式数据存储ala mongodb。似乎有一个mongo模块可供使用。

另一个选择可能是使用无模式的数据存储ala mongodb。似乎有一个用于播放的mongo模块。

我想这正是您想要的

看一看这出戏

公共类应用程序扩展控制器{

@Before
public static void setDBSchema() {
    String schema = "someSchema"; // This can come from a Cache, for example

    Play.configuration.setProperty("hibernate.default_schema", schema);

    JPA.entityManagerFactory = null;
    JPAPlugin plugin = new JPAPlugin();
    plugin.onApplicationStart();
}

...

您只需更改已配置的hibernate模式,然后强制JPAPlugin重新启动

我认为这正是您想要的

看一看这出戏

公共类应用程序扩展控制器{

@Before
public static void setDBSchema() {
    String schema = "someSchema"; // This can come from a Cache, for example

    Play.configuration.setProperty("hibernate.default_schema", schema);

    JPA.entityManagerFactory = null;
    JPAPlugin plugin = new JPAPlugin();
    plugin.onApplicationStart();
}

...

您只需更改配置的hibernate架构,然后强制JPAPlugin重新启动

您说得很对。但我必须使用PostgreSQL,因为它当前的部署和与其他各种GIS应用程序的集成。您说得很对。但我必须使用PostgreSQL,因为它当前的部署和与其他各种GIS应用程序的集成s