java - 拥有复杂的实体类有什么意义(在 Hibernate 意义上)

标签 java hibernate orm entity dao

既然经典的 OOP 模型无论如何都被破坏了,尽管 ORM 有很多好处,为什么我需要在实体类中注释以下两个示例属性:

User
   => Collection<Photo> photos (one to many)
   => Collection<User> friends (one to many)

因为我永远不会使用这些。看来,我需要进行一些分页或其他类型的格式化,所以我想我总是会选择类似的东西:

photoDAOInstance.find(searchCriteria); 

为什么我不简单地将实体类的注释限制为仅对应数据库表包含的属性?其余的只是暂时的属性。

最佳答案

好吧,如果您从不需要它们,就不要映射它们。根据您的架构/意图,当然没有理由映射您不需要的东西。如果您以后确实需要它们,请添加它们。根据使用情况,您可能希望为 HQL/JPA QL/Criteria 查询添加它们,或者您可能只想在 SQL 中执行查询。最终,您可能需要重新设计或重新考虑缓存性能,但事情就是这样。只要确保您有一个像样的测试套件即可。

没什么大不了的。::耸肩::

一般来说,以后添加东西很容易。删除也不是坏事。移动/拆分是困难的(例如,将 NAME 拆分为 FIRST 和 LAST)。

关于java - 拥有复杂的实体类有什么意义(在 Hibernate 意义上),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6684069/

相关文章:

java - 无法在 Netbeans 中修改我的 java 源文件。源文件显示在灰色窗口中

java - Gson 为特定类或字段序列化 null

java - 没有集群的 Hadoop MapReduce - 这可能吗?

java - 使用 Hibernate 和 Spring MVC 在级联上保存包

java - (1+N) 选择与 OnetoOne 关联

sql-server - sql : Scan error on column index 0, name "": unsupported Scan, 将 driver.Value 类型 int64 存储到类型 *main.SMSBlast 中?

java - 使用 JSON.simple 创建带有键和值的对象和数组

hibernate.cfg.xml 未解析

java - 无法从 servlet 上下文中检索 hibernate 外键

mysql - 如何在 mysql Db 中插入行,在 nodejs 中使用 light-orm