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 评论:
发表评论