gpt4 book ai didi

NHibernate "database"模式混淆 [.\hibernate-mapping\@schema]

转载 作者:行者123 更新时间:2023-12-02 17:25:40 24 4
gpt4 key购买 nike

我主要针对 MSSQL 数据库使用 NHibernate,其中我对各种表使用了 MSSQL 架构。

在我的 NH 映射 (HBM) 文件中,我为映射中的每个表指定了架构,如下所示:

<?xml version="1.0"?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
auto-import="true"
schema="xyz"> <!-- schema specified -->
<class name="Customer">
<id name="Id">
<generator class="native" />
</id>
<property name="Name" />
</class>
</hibernate-mapping>

对于我的单元测试,我一直在尝试使用 SQLite,但是我的映射现在失败,因为 NH 报告找不到数据库“xyz”。

我知道 schema 的解释存在差异,那么 NH 的解释/实现是什么?使用 schema 时最好的方法是什么?

顺便说一句:使用“nhibernate 数据库架构”等关键字在网络上搜索并没有得到任何相关结果。

最佳答案

“标准”解释是表具有由三部分组成的名称:“CATALOG.SCHEMA.TABLE”:这些是标准(ISO-SQL 标准?)“information_schema” View 中使用的名称。 Hibernate(大概也是NHibernate)遵循此约定,您可以在类映射中指定catalog和schema,并在配置中指定default_catalog和default_schema。

在我自己的单元测试环境(使用 Hypersonic)中,我在构建 SessionFactory 之前调整了 Hibernate 配置:我自己这样做是为了执行设置 HSQL 兼容的 IdentifierGenerators 之类的操作,但是您可能可以通过清除 SessionFactory 的架构属性来进行操作。映射的类。

一般来说,我会尽量避免在应用程序中指定架构和目录。在 Oracle 中,我通常创建同义词,以便用户可以在自己的命名空间中看到对象;在PostgreSQL中,在数据库配置中设置search_path;在 SQL Server 中,将所有表放入“dbo”中。

关于NHibernate "database"模式混淆 [.\hibernate-mapping\@schema],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/887605/

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