return to homepage.

three ways contact with meemail: contact with me using emailmsn: contact with me using msnQQ: contact with me using QQ

欢迎自由转载,但请注明本blog链接,谢谢合作。

文章分类

成长,转载 (1) 地税 (1) 健康 (2) 趣闻 (1) 生活杂记 (11) 转载 (4) CSS (1) Design Patterns (1) DWR (3) EJB (1) Hibernate (2) javascript (2) Jsp (2) NBA (1) Oracle (2) Struts (4) Tomcat (1) Weblogic (1) XML (1)

2007年3月27日星期二

Hibernate学习笔记

软件的模型:
概念模型(软件分析阶段)--描述实体

域模型(面向对象)(软件设计阶段):包括具有状态和行为的域对象,域对象之间的关系
域对象(包括实体域对象(应用的业务数据在内存中的表现形式)(如实体EJB、POJO类)、过程域对象(用于执行业务逻辑)、事件域对象)

域对象之间有关联、依赖、聚集、继承四种关系

数据模型(面向关系)--描述关系数据的静态结构(关系数据库学的最重要的一个理论就是:不要给关键字赋予任何业务意义,请使用代理主键

HQL语句针对的是hbm.xml文件中出现的property而不是针对pojo中的property,也不是针对数据库中的表的字段。

建议数据库的表名以及字段名的所有字符都为大写,表名以"S"结尾,而对应的实体类名为表名的全小写,同时去掉尾部的"S"和首字母大写
为了实现这样的效果,可以实现Hibernate的NamingStrategy接口,然后在Configuration config = new Configuration().configure(String yourxml);
config.setNamingStrategy(new YourNamingStrategy);

Java语言按内存地址来识别或区分同一个类的不同对象,而关系数据库按主键值来识别或区分同一个表的不同记录。Hibernate使用对象标识符(OID)来建立内存中的对象和数据库表中记录的对应关系,对象的OID和数据库表的主键对应。

应该把含有Set方的inverse设置为true,不让它去更新与它关联的Set里的类实例,而把它作为一个镜像,Hibernate仅按照Set里对应的某方去同步更新数据库,但注意一点:建立两个对象的双向关联时,在程序中应该同时修改关联的对象的相应属性,避免受Hibernate的影响

0 评论: