0

我有一个旧版 Oracle 数据库,它有多个 1:n 查找表,这些查找表基于子表中的 CHAR(6) 主键。不幸的是,我不是唯一一个对 NHibernate 如何处理 char 字段(尤其是作为主键的字段)有问题的人。看:

我即将实现一个自定义用户类型来处理这些问题,但想检查是否有更好的方法,因为对于如何处理 char 字段作为 session.Get() 中的键似乎仍然存在一些困惑。 . 和 session.Load()... (因此,由于这些表是我们应用程序的核心,我想确保它不必重做)。我确信我不是唯一遇到此问题的人,我非常感谢更有经验的 NHibernate 用户提供的任何建议。

为了让事情变得更有趣,将 NHibernate 与 Oracle 结合使用确实会引发一些我没想到的曲线球。

4

1 回答 1

0

看起来 2.0.1 GA 的更新解决了大部分问题(如果它们不是我错误配置的问题的话)。延迟加载可以很好地加载外键,即使它们是 char(6),但长度小于 6。如果包含尾随空格,则 session.Get 和 session.Load 在本机上也可以正常工作。

我可能仍然会实现一个 UserType 来摆脱显示的尾随空格。

于 2008-12-09T19:15:20.217 回答