萍聚社区-德国热线-德国实用信息网

 找回密码
 注册

微信登录

微信扫一扫,快速登录

萍聚头条

查看: 1302|回复: 9

Hibernate, Database mapping.... Dot Net

[复制链接]
发表于 2007-5-10 15:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册 微信登录

x
有没人弄过hibernate, 要给每个tablelle mapping吗? 那要有100多个tabellen 不就 有 100多个classe了? 我在想我的逻辑层改怎么分, 这个classlibrary应该方到我的framework里呢还是从新外加一层?反正不能方到webservices里吧。 但我framework里也需要一些classe,外加 referrence也不好,因为有些逻辑层的功能直接就在class里面实现的。
喜欢偶尔玩玩陌生的东西,呵呵~
有经验的说说你们怎么分的吧~~$支持$ $支持$
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2007-5-10 23:40 | 显示全部楼层
每个tabel都要一个mapping,即一个hbm.xml+一个model class。。。然后再配个dao class来写一些调用datenbank 的 methode

不好意思,才看到,你说的是dot net。不知道dot net是不是也这样呢?好奇ing..$汗$

[ 本帖最后由 krap 于 2007-5-11 00:17 编辑 ]
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
 楼主| 发表于 2007-5-11 17:14 | 显示全部楼层
.net和 java一样的。 sourceforge 里有爱好者弄了 个 nhibernate, 基本的 hibernate 功能都复制了。

因为我以前弄的三层,和一个系统framework。系统framework里mapping了 一些重要的 table,比如 user table吧。 但是一些数据几乎不改变的table必要给他对应一个操作类吗? 我认为没必要。 而且,当数据库关系很复杂的时候,比如上100个table,偶地神啊。。。我是不是改另起一project封装这100多个mapping class,还是添加在本来的framework里$frage$     

主要是我自己的framework用的挺好的。如果突然加进来几乎不会直接进行操作的类,比如说有个price 的 table,里面就比如说3,4行,这种table根本就不需要操作。 而且如果加入我的framework的话,又要进行从新分类,哪个属于哪个。然后所有的namespace也要改。。。
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2007-5-14 11:46 | 显示全部楼层
最近也刚开始做hibernate 的项目。因为是java的项目,所以很多东西很好理解。一个数据表对应一个数据对象类是必须的,这个也就对应java bean的概念。

因为项目是按module来写的,所以数据类可以按照调用分别封装在各个module里。
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
 楼主| 发表于 2007-5-16 16:12 | 显示全部楼层
我不管了。就部分mapping。道理是死的人是活的。这么做项目着多久也没遇见过结构框架问题。其实就是个偷懒而已,不弄那么麻烦了。

今天非常气愤!!!hibernate就是要跟俺作对是么。 调用webservieces方法给我提示  ”http 500 服务器错误“ !其他没用hibernate的方法都可以,asp网站也可以用。说明不是iis的问题。但是我还是同步了 iis ,iwam 的密码帐号。还是不行。搞了几个小时,没心情了。每次都在ISessionFactory factory = cfg.BuildSessionFactory(); 行,就是
BuildSessionFactory()跳出这个网页错误。 应为只有dll文件,没法内部调试。也没在网上找到对应的nhibernate cs文件。
气死我了。昨天都运行的好好的,今天就突然不行了,什么玩意儿嘛$怒吼$

[WebServiece]
public bool insertEmployeeTest( string MyEmployeeXML )
{
Configuration cfg = new Configuration();
cfg.AddAssembly("HM_ClassLibrary");

ISessionFactory factory = cfg.BuildSessionFactory();
ISession session = factory.OpenSession();
ITransaction transaction = session.BeginTransaction();

// Tell NHibernate that this object should be saved
session.Save( new Employee(MyEmployeeXML) );

// commit all of the changes to the DB and close the ISession
transaction.Commit();
session.Close();

return true;
}

[ 本帖最后由 shfaye 于 2007-5-17 19:57 编辑 ]
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
 楼主| 发表于 2007-5-17 19:19 | 显示全部楼层
晕啊~~~原来是我的ie的显示详细错误被关掉了,弄的全是500错误。。。。。原来我一直都是选择开的啊,怎么突然北关掉了$frage$  ~弄得我找不着北了。呵呵~~其他朋友们也要注意啦,别弄这么noob的错误$汗$
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2007-5-20 20:53 | 显示全部楼层
原帖由 shfaye 于 2007-5-11 17:14 发表
.net和 java一样的。 sourceforge 里有爱好者弄了 个 nhibernate, 基本的 hibernate 功能都复制了。

因为我以前弄的三层,和一个系统framework。系统framework里mapping了 一些重要的 table,比如 user ta ...


操作类不用每个必备一个,用到的才写啊,呵呵。
你说的也是个问题,多加个表格就要多那么一套东西,而且有些相应的都要改变。。$怒吼$
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2007-6-12 11:45 | 显示全部楼层
应该是你要persistent的那些Beans才要写相应的mapping文件的, 就像JPOX一样的. Management classes就不用了.
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2007-6-12 23:30 | 显示全部楼层
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
 楼主| 发表于 2007-6-13 01:13 | 显示全部楼层
hehe....我成了前车之鉴了. hibernate不适合开发web service. 应为对应的collection必须用interface, 但interface无法序列化(serialization). 而且, 对相互引用(circle reference)没有自动的序列化程序,必须自己写.(那是几乎不可能的). 所以想要用hibernate做web service中间层用 的朋友还是放弃吧. 或者你只使用部分hibernate功能.比如插入,update,delete. 也非常省事.必要的collection intance就自己用sql写吧.(也许hql也可以? 有空实验实验.)

希望hibernate以后的版本里面能提供支持. 我是没有时间.要不也去看看LINQ等针对.net的.
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
您需要登录后才可以回帖 登录 | 注册 微信登录

本版积分规则

手机版|Archiver|AGB|Impressum|Datenschutzerklärung|萍聚社区-德国热线-德国实用信息网 |网站地图

GMT+2, 2024-5-22 06:42 , Processed in 0.102010 second(s), 20 queries , MemCached On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表