小编Stm*_*ted的帖子

从类创建HSQL创建表查询

我有一个很常用的项目,我正在进行当前更新.有几个地方可以安装此项目,并且将来不确定将来可能更新到哪个版本的版本和版本.但是现在他们都是一样的.

我的问题源于这样一个事实,即hibernate实体类可能会有很多变化,并且必须很容易更新到更新的版本而不会有任何麻烦,并且不会丢失数据库内容.只需替换WAR并启动它就应该自行迁移.

据我所知,除非hibernate.hbm2ddl.auto = create,否则Hibernate不会更改表,但它实际上会抛弃所有数据?

所以现在当Spring上下文完全加载时,它会执行一个bean,它将数据库迁移到当前版本,方法是执行从versionX到versionY的所有更改(之前的版本保存在数据库中),并手动更改桌子.

使用一些硬编码的ALTER TABLE来添加一些列并不是很麻烦,但是当谈到添加完整的新表时,必须编写所有这些内容感觉很愚蠢......

所以我的问题是这样的:

  • 有没有办法在某处向Hibernate代码发送实体类和方言,并获取有效的SQL查询来创建表?

  • 甚至更好,以某种方式创建一个SQL字符串,用于向表中添加一个列,dialect-safe?

我希望这不是一个愚蠢的问题,在Hibernate方面我没有错过任何明显的东西......

java spring hibernate hsqldb

5
推荐指数
1
解决办法
806
查看次数

使用Roslyn RC发送到DynamicAssembly

从编译Roslyn SyntaxTree的许多示例中,我看到了以下代码:

[... create tree and compilation ...]
var assembly = AppDomain.CurrentDomain.DefineDynamicAssembly(new AssemblyName("foo"), AssemblyBuilderAccess.RunAndCollect);
var module = assembly.DefineDynamicModule("foo");

var result = compilation.Emit(module);
Run Code Online (Sandbox Code Playgroud)

但是当我尝试在当前使用Visual Studio 2015 RC发布的Roslyn中执行此操作时,我看到没有Emit()哪个需要一个模块.我需要写入流并将其加载到常规AppDomain锁定中Assembly.

然后我从Tomas Matousek看到这个答案:https://stackoverflow.com/a/22977158

他说这已被删除,因为它"有问题".

我很难在互联网上找到关于此的任何其他信息.有谁知道:

  • 在Roslyn中还有另一种方法可以编译成可以进行垃圾回收的程序集吗?
  • 或者这将在VS/Roslyn的最终版本中得到支持?
  • 如果这里没有人知道(无法找到正式的,积极的罗斯林论坛),我应该在哪里指导这个问题?

c# roslyn

5
推荐指数
1
解决办法
335
查看次数

标签 统计

c# ×1

hibernate ×1

hsqldb ×1

java ×1

roslyn ×1

spring ×1