本人刚开始从事软件项目开发,目前是J2EE方向的.一般也就是基本的J2EE后台管理系统.
对于数据库是采用了HIBERNATE的方案.
我现在想问一下最基本的一个设计原则,各位在HIBERNATE的实体JAVA类中是怎么设计的?
我第一个项目基本都是同事干的,应该是手写修改的,那个系统的JAVA实体类设计全部都是对应字段来进行的.
例如 表A,字段AID,ROOT..表B,字段ID,P,AID..
其中AID分别是表A,B的主键和外键.那么类B中定义AID则直接为Long AID这种形式
我第二个项目是我自己用工具middlegen生成的,如果同样是这样的情况,则B中的AID定义为Class A a;就是用对象来存储该字段.并且通过工具生成的HIBERNATE配置文件也是匹配这种形式的.
通过开发比较,第一种形式开发相对比较简单,第二种则麻烦一些.但是我觉得可能如果采用方案二可能会更通用一些,因为引用B的时候如果顺带能带上A还是能降低工作量的,尤其象搜索的时候有时候就是查B但是实际也需要A的信息.这时候,相对来说第一种方法就不是太灵活了.毕竟,代码自动生成工具的设计也应该考虑到了这点.相对缺点可能是系统开销会大,设计基础DAO操作之类会更复杂之类.关于同事加的DAO那层的基本操作我虽然不懂HIBERNATE函数的定义,不过走测试跟踪的时候可以查的到,操作B对象的时候,B里面所带的A并不是一个完整的对象,而是一个可能引用的A对象,只能带有一个AID的属性,但是实际上里面的A是一个NULL.所以觉得DAO的设计还是要更复杂一些,而不是单纯的把数据压进去.
请问,各位在公司项目开发的时候采用哪种实体类的设计方式?还有,谁有实例化B更好的方法,得到一个真正的B对象,而不是里面有一个伪A存在??
虽然问题简单,但希望高手解答下疑问啊..不单单是在编程上,重要的是方案的选择对项目的灵活性开销等方面的影响上.
分享到:
相关推荐
此外,考虑到业务逻辑的复用,避免重复编码,我们可以直接利用已有的Hibernate实体类和DAO层。这需要确保在Java SE应用中,实体类的生命周期和持久化行为与Web应用中的保持一致。可能需要重新实现一些特定的逻辑,如...
在Java企业级开发中,J2EE框架是一个广泛使用的平台,它允许开发人员构建可扩展且高度复杂的分布式应用程序。Hibernate是J2EE中一个非常重要的持久化框架,它简化了数据库操作,使得开发者可以更加专注于业务逻辑而...
Struts和Hibernate是Java开发中常用的两个开源框架,它们在构建J2EE应用程序,特别是复杂的Web应用程序时,起到了至关重要的作用。在这个“Struts+Hibernate宿舍管理系统J2EE”项目中,我们可以深入学习如何整合这两...
在Java EE项目开发的初期,执行这些脚本是至关重要的步骤,因为它们会创建数据库中的实体,如用户、角色、权限等,这些都是业务逻辑的基础。 在实际应用中,开发者通常会在项目的初始化阶段运行这些SQL语句,例如在...
在Java J2EE开发中,使用Hibernate可以显著简化数据库操作,通过ORM(对象关系映射)技术,将复杂的SQL语句转换为对Java对象的操作。这使得开发者可以更加专注于业务逻辑,而不是数据库细节。同时,DTD文件的存在...
这个示例可能包括了两个实体类的定义,以及它们之间的外键关联配置,通过运行这个示例,学习者可以直观地看到如何在Hibernate中创建和使用外键。 综上所述,了解和熟练掌握Hibernate中外键的使用对于进行J2EE开发至...
1. **Hibernate简介**:首先,我们了解Hibernate的核心概念,包括它的起源、目标以及在J2EE(Java企业版)环境中的地位。Hibernate作为一个开源项目,是如何解决Java应用程序与关系型数据库之间的数据访问问题的。 ...
Java J2EE面试题是应届毕业生以及有经验的开发者在求职过程中经常遇到的挑战。为了在竞争激烈的IT行业中脱颖而出,了解并掌握这些知识点至关重要。J2EE(Java 2 Platform, Enterprise Edition)是一个用于构建企业级...
J2EE通过Java Persistence API (JPA)和Hibernate等ORM(Object-Relational Mapping)工具,简化了对象与关系数据库之间的映射,实现了数据的持久化。 6. **安全机制** J2EE提供了一套强大的安全模型,包括认证、...
- **创建第一个类**:定义一个简单的 Java 实体类。 - **映射文件**:编写 XML 映射文件来描述实体与数据库表之间的关系。 - **Hibernate 配置**:设置 Hibernate 的核心配置。 - **使用 Maven 构建**:利用 ...
### J2EE课程总结 #### 数据库:Oracle **1. Oracle SQL基础知识** - **选择行**:通过`SELECT`语句结合`WHERE`子句来实现特定条件下的数据筛选。 - **限制选择行**:利用`LIMIT`或`ROWNUM`来限制返回结果的数量...
在这个BBS论坛项目中,模型类可能包括用户(User)、帖子(Post)、板块(Board)等实体类,它们封装了与数据库交互的方法,如用户注册、登录、发帖、回帖等操作。 2. **视图(View)**:视图层主要负责展示数据,通常由...
学生系统可能包含EJB实体Bean来存储学生数据,使用JPA(Java Persistence API)或Hibernate作为ORM(对象关系映射)工具与数据库交互。 5. **数据库设计**:项目中可能使用MySQL、Oracle或其他关系型数据库存储数据...
J2EE(Java 2 Platform, Enterprise Edition)是Oracle公司推出的用于构建企业级分布式应用程序的框架,它基于Java编程语言,提供了丰富的服务和组件模型,包括Web容器、EJB(Enterprise JavaBeans)容器、JMS(Java...
- **hibernate和entity中对象状态转换的区别**:解释Hibernate和JPA中对象状态的不同之处。 - **JPA的使用**:提供如何使用JPA来持久化Java对象的具体示例。 - **JPA中的关系映射**:讲解如何使用JPA来映射Java对象...
持久化类(Persistent Classes)是Hibernate中的核心概念之一,文档通过一个简单的POJO(Plain Old Java Object)示例介绍了如何定义和使用持久化类。此外,还讨论了如何实现继承策略,以及equals()和hashCode()方法...
### J2EE软件工程师全部培训课程总结 #### 数据库操作:Oracle - **选择行**:在Oracle数据库中,可以通过`SELECT`语句来选择特定的行。例如,使用`WHERE`子句来限定选择条件。 - **限制选择行**:使用`LIMIT`或`...
《Java约束验证与Hibernate Validator详解》 在Java世界中,数据验证是不可或缺的一部分,它确保了应用程序接收的数据的准确性和完整性。"javax.validation-1.0.0.GA.jar"是一个关键的组件,它提供了Java约束验证...
这款基于Java的物流管理系统,使用了MyEclipse作为开发平台,它是一个强大的集成开发环境,支持Java、J2EE等多种应用的开发,提供了丰富的功能,如代码提示、调试、版本控制等,大大提升了开发效率。 系统的核心...