问题标签 [schemaexport]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
192 浏览

nhibernate - 从流畅的 nhibernate 描述构建的 SQLite DB 生成不可为空的列

我有以下代码来创建用于测试的内存 SQLite DB:

这似乎对大多数事情都有效,但不幸的是,它将所有列都创建为不可为空。

例如我有两个类:

InternalFundExternalFund。两者都继承自同一张表,Fund并且都保留在同一张表中。

ExternalFund有一个专栏Manager_IDInternalFund没有。不幸的是,这意味着我不能持久化它,InternalFund因为它会抛出一个 SQL 异常。

我的测试不需要参照完整性,所以如果我可以让所有列都为空,我会很高兴。

有谁知道如何做到这一点?

谢谢

斯图

0 投票
1 回答
135 浏览

nhibernate - SchemaExport 和关闭参照完整性约束

当我在我的呼吸代码上运行测试时,会删除并创建表,并添加新数据以用于测试

new SchemaExport(_configuration).Execute(false, true, false);

然而,它正在执行参照完整性,在生产中这会很好,但在测试中我要求不要启用它。

使用上面的代码创建表时,有什么方法可以禁用它们?

0 投票
1 回答
8078 浏览

database - Hibernate 一对多映射错误 - mappedBy 引用未知目标实体属性错误

我试图通过从域对象创建表来测试一对多映射,但我看到错误mappedBy reference an unknown target entity property。有人可以看看吗?

谢谢

雇员.java

FulltimeEmployee.java

ContractEmployee.java

FlightBenefit.java

员工状态

休眠.cfg.xml

错误堆栈跟踪


谢谢你的回复。我进行了您提到的更改,还进行了一些其他更改,例如将session.save(flightBenefit)添加到 Main.java 和insertable = false, updatable = false 与 @JoinColumn 注释。我看到正在创建 Employee 表,但没有看到 FlightBenefit 并且看到了错误

引起:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:表'TestSchema.flightbenefit'不存在

以下是具有更新更改和堆栈跟踪的类

主.java

全职雇员.Java

FlightBenefit.java

堆栈跟踪

0 投票
2 回答
18702 浏览

hibernate - 使用 H2 的 SQL 语句中的语法错误

在 H2 数据库中的一些 sql 语句时出现错误。这些 sql 语句来自 Hibernate SchemaExport:这里是 sql 语句:

例如,此行不会在 H2 中执行。

错误说:[ERROR] Caused by org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement : CREATE TABLE CONTACTS ( .... <<The same code from above>>

如何让这个 SQL 语句在 H2 中运行。

0 投票
4 回答
3624 浏览

java - 以编程方式创建架构时出现未知数据库异常?

我正在尝试使用 hibernate/GWT/Java 以编程方式创建模式和表。我使用所有映射资源和属性等创建了配置,如下所示,

但是当我说

它抛出异常,

我的 cfg.xml 文件

如果我手动创建了模式,那么它工作正常,即也创建表和列。但通常它不会创建架构,是否无法自动创建架构?

0 投票
1 回答
5512 浏览

java - 如何在运行时使用 Hibernate SchemaExport 创建数据库模式?

我正在尝试在我的应用程序中使用 SchemaExport 在应用程序启动时创建数据库架构。我正在使用 Spring 3.2,并且在我的 Spring 配置文件中已经定义了一个 SessionFactory bean。

我正在尝试按如下方式使用它:

我的 LocalSessionFactoryBean 在我的 spring 配置文件中定义为:

但是,当我尝试运行该方法时,出现以下错误:

我试图追踪问题,似乎当 SchemaExport 尝试将模式写入数据库时​​,它会创建一个新的 LocalSessionFactory:

来自 org.hibernate.connection.ConnectionProviderFactory (为清楚起见进行了编辑):

其中 providerClass = org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider

因此,它不使用我的 SessionFactory bean 中定义的现有 ConnectionProvider,而是尝试创建一个新的。

如何在 SchemaExport 中使用现有的 Spring 配置的 SessionFactory / ConnectionProvider / Hibernate Configuration 对象?为了在我的应用程序中使用它,我还需要做些什么来设置/配置 SchemaExport 吗?

0 投票
1 回答
331 浏览

spring - 升级 Hibernate 后奇怪的自引用约束冲突

hibernate-entitymanager在 Spring 应用程序中使用。我正在升级我的 Hibernate 版本。将其缩小到确切版本:当我从 4.2.1.Final 升级到 4.2.2.Final (或更高版本)时,当我的单元测试启动并尝试创建数据库时,我收到以下错误架构:

该错误不会阻止系统正常工作,但显然我无法在我的系统中出现如此严重的错误并且没有任何解释的情况下进行生产。

这看起来很像Incident表与自身有外键关系,但绝对不是这样。

我将尝试在此处复制实体的本质:Incident

请让我知道我是否可以提供其他任何东西来帮助你们阐明这一点。我已经玩了几个小时,没有结果,非常感谢您的帮助。

0 投票
3 回答
1993 浏览

mysql - MySQL默认的主键生成策略是什么

AUTO_INCREMENT当将新行插入 MySQL 中的表时,我一直在使用属性生成主键。

有人可以帮助我了解 MySQL 的默认主键生成策略是什么以及它是如何工作的吗?

EDIT Hibernate 有一个标识符生成策略native,根据底层数据库的功能选择身份、序列或 hilo。我使用了为Java 数据类型的属性hibernate.hbm2ddl.auto=update生成id BIGINT(20) NOT NULL AUTO_INCREMENT的MySQL。idLong

我试图了解 HibernateAUTO_INCREMENT在使用SchemaExport工具时是如何选择的。是AUTO_INCREMENTMySQL 的默认主键生成策略吗?

0 投票
0 回答
233 浏览

mysql - grails 2.4.3 中的 Joda-time 与 Mysql 错误 hbm2ddl.SchemaExport

我正在尝试运行我的应用程序。我有一个 grails 项目 2.4.3 版本,我正在使用 Hibernate4。在我的 BuildConfig.groovy 文件中,我有:

在我的 Config.groovy 文件中,我有:

我从另一个 grails 项目但 1.3.5 版本复制了一组统治类,我运行应用程序并创建了表但出现错误:

有谁知道为什么会这样?

感谢您的时间和回答。

0 投票
1 回答
208 浏览

c# - NHibernate SchemaExport 不创建 ntext 列

我创建了一个简单的工具,用于SchemaExport生成数据库和 sql 脚本。在一个简单的实体上,一个字符串属性Description应该是 SQL Server 中的一ntext列,但实际上它是nvarchar(255).

在此处输入图像描述

不确定我错了哪一部分,感谢任何建议!

下面是我的代码,只需创建一个控制台应用程序 + 添加NHibernatenuget 包即可运行。