我有一个旧版 Oracle 数据库,它有多个 1:n 查找表,这些查找表基于子表中的 CHAR(6) 主键。不幸的是,我不是唯一一个对 NHibernate 如何处理 char 字段(尤其是作为主键的字段)有问题的人。看:
- http://forum.hibernate.org/viewtopic.php?t=984281
- http://forum.hibernate.org/viewtopic.php?t=975743
- http://forum.hibernate.org/viewtopic.php?p=2382974
- http://www.hibernate.org/388.html
- ...还有很多....
我即将实现一个自定义用户类型来处理这些问题,但想检查是否有更好的方法,因为对于如何处理 char 字段作为 session.Get() 中的键似乎仍然存在一些困惑。 . 和 session.Load()... (因此,由于这些表是我们应用程序的核心,我想确保它不必重做)。我确信我不是唯一遇到此问题的人,我非常感谢更有经验的 NHibernate 用户提供的任何建议。
为了让事情变得更有趣,将 NHibernate 与 Oracle 结合使用确实会引发一些我没想到的曲线球。