`
zym_nanako
  • 浏览: 84414 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

答复: 讨论一下ORM中的自定义类型有用么?

阅读更多
User Type是根据具体的需求来的。

比如说,一个User有很多个Email,但是有多少个并不确定。这种情况下,我们有2种设计:第一种,设计一张User_Email表,与User表形成多对一的关系。还有一个种,在User表中增加一个字段,这个字段表示Email,多个Email数据之间用分号隔开进行存储。

这两种设计都是ok的,显然后面一种违反了所谓的范式,不过有时候可能为了性能等原因,我们也会采取后面一种方式,因为它简单易用,查询时无需对字表进行关联查询。在这种情况下,如果我们使用Hibernate的User Type,可以把这样的一个字段映射成Java中的List<String>,然后由ORM框架来帮你做底层的类型转化与处理。这样显然会方便很多。不过User Type的缺点就是该字段无法进行精确的Query查询,所以也需要在设计时加以考虑。
分享到:
评论

相关推荐

    eform自定义表单

    **eform自定义表单**是北京方程软件推出的一款开源工作流解决方案,它专为程序员在工程开发中简化表单设计流程而设计。这款工具的出现,极大地提升了开发效率,减少了开发表单时的繁琐步骤,使得程序员可以更加专注...

    K-ORM 自定义ORM工具

    《K-ORM自定义ORM工具详解》 ORM(Object-Relational Mapping)是现代软件开发中的一种重要技术,它将数据库中的数据与程序中的对象进行映射,使得开发者可以使用面向对象的方式操作数据库,而无需关注底层SQL语句...

    反射+注解自定义ORM

    在Java编程中,ORM(Object-Relational Mapping)是一种技术,它允许程序员使用面向对象的方式来操作数据库,将数据库中的表映射为Java对象,而无需编写大量的SQL语句。本主题探讨的是如何通过反射和注解来自定义ORM...

    Java自定义的类似ORM的数据库操作框架

    Java自定义的类似ORM的数据库操作框架是一种高效且灵活的数据访问解决方案,旨在简化数据库的交互过程,类似于流行的ORM(对象关系映射)框架,如Hibernate和MyBatis。ORM框架的核心理念是将数据库操作转化为面向...

    Hibernate使用——自定义数据类型

    在Java世界中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者将数据库操作与业务逻辑解耦,通过面向对象的方式处理数据。在实际项目开发中,有时我们可能需要对数据库中的某些字段使用自定义的...

    spring-orm-5.0.8.RELEASE-API文档-中英对照版.zip

    赠送jar包:spring-orm-5.0.8.RELEASE.jar; 赠送原API文档:spring-orm-5.0.8.RELEASE-javadoc.jar; 赠送源代码:spring-orm-5.0.8.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring-orm-5.0.8.RELEASE.pom;...

    Django ORM 自定义 char 类型字段解析

    通过上述步骤,我们成功地在Django ORM中添加了一个自定义的字段类型,FixedCharField,它能够让我们更精确地控制数据库中的数据类型。这一技术的应用,对于需要严格数据类型控制的场景非常有用,比如在数据量非常大...

    spring-orm-4.2.2.RELEASE-API文档-中文版.zip

    赠送jar包:spring-orm-4.2.2.RELEASE.jar; 赠送原API文档:spring-orm-4.2.2.RELEASE-javadoc.jar; 赠送源代码:spring-orm-4.2.2.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring-orm-4.2.2.RELEASE.pom;...

    spring-orm-5.0.8.RELEASE-API文档-中文版.zip

    赠送jar包:spring-orm-5.0.8.RELEASE.jar; 赠送原API文档:spring-orm-5.0.8.RELEASE-javadoc.jar; 赠送源代码:spring-orm-5.0.8.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring-orm-5.0.8.RELEASE.pom;...

    Moon.Orm下载

    Moon.Orm是一个专门为.NET开发者设计的轻量级ORM(对象关系映射)框架,它具有强大的功能和良好的可扩展性,能够支持多种不同的数据库系统,包括但不限于MySQL、SQL Server、Oracle、SQLite等。ORM框架的主要目标是...

    简要分析Java的Hibernate框架中的自定义类型

    了解并掌握自定义类型,不仅可以帮助我们在实际开发中更好地利用Hibernate,还能提升我们对ORM框架的理解,以及如何设计可扩展和灵活的数据模型。同时,这也是对软件工程中“开闭原则”的实践,即对扩展开放,对修改...

    spring-orm-4.2.2.RELEASE-API文档-中英对照版.zip

    赠送jar包:spring-orm-4.2.2.RELEASE.jar; 赠送原API文档:spring-orm-4.2.2.RELEASE-javadoc.jar; 赠送源代码:spring-orm-4.2.2.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring-orm-4.2.2.RELEASE.pom;...

    自定义Orm框架的实现

    在实现自定义ORM框架时,我们需要以下几个关键步骤: 1. **实体类定义**:创建带有注解的实体类,这些类将作为数据库表的映射。例如: ```java @Entity @Table(name = "USER") public class User { @Id ...

    Grove ORM Development Toolkit

    Grove ORM Development Toolkit 是一款专为开发者设计的工具集,用于简化对象关系映射(ORM)的开发过程。ORM是一种编程技术,它允许程序员使用面向对象的编程语言来操作数据库,而无需直接编写SQL语句,提高了代码...

    php中的orm

    在这些ORM框架中,"源码"标签可能意味着博客会深入到ORM的内部实现,探讨如何阅读和理解ORM的代码,这对于想要自定义或优化ORM行为的开发者非常有用。而"工具"标签可能涵盖了如何集成和使用这些ORM工具到项目中的...

    x-eform-自定义表单

    无限制版版本仅供个人学习用,用于商业用途请联系软件厂商,个人不负任何责任,敬请注意。

    ORM自定义框架

    在这个自定义的ORM框架"MyOrm"中,我们可以深入探讨ORM的核心概念和实现方式。 首先,ORM框架的核心思想是将数据库表与Java类映射,表中的每一行对应一个对象实例,表字段对应对象的属性。在"MyOrm"中,我们需要...

    Python 进阶(三):Python使用ORM框架SQLAlchemy操作Oracle数据库

    本文主要介绍Python使用ORM框架SQLAlchemy操作Oracle数据库。 1. 安装Oracle Instant Client 2. 安装依赖库 使用以下命令来安装SQLAlchemy和cx_Oracle库: pip install SQLAlchemy pip install cx_Oracle 3.创建...

    Django框架orM与自定义SQL语句混合事务控制操作

    在前面的一篇文章中已经讲过Django事务小结 ,但里面没有提到在同一个方法里面既有ORM 又有 自定义SQL 语句的情况。 如果是单纯的ORM ,可以这样做,假设已经定义好model, User,Category。 from django.db import ...

Global site tag (gtag.js) - Google Analytics