首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我可以在父类中使用一个枚举作为DiscriminatorType和列吗?

在父类中使用枚举作为DiscriminatorType和列是可行的。枚举类型是一种可以定义一组常量的数据类型,可以将其用作数据库表中的列来表示不同的数据状态。在使用枚举作为DiscriminatorType时,可以通过指定一个枚举值作为父类的列来标识不同的子类类型。

使用枚举作为DiscriminatorType和列的优势是可以简化代码逻辑和提高代码可读性。通过使用枚举,可以避免使用复杂的字符串或数字来表示不同的子类类型,而是使用更具表意性的枚举值。这使得代码更易于理解和维护。

枚举的应用场景广泛,特别适用于具有固定取值范围的场景。例如,在数据库模型中,可以使用枚举来表示不同的状态、类型或选项。在对象关系映射(ORM)框架中,可以将枚举映射到数据库的列,并在查询和持久化过程中使用它们。

腾讯云提供了多个与枚举相关的产品和服务,例如:

  1. 腾讯云数据库MySQL:提供了枚举数据类型的支持,可以直接在数据库中定义和使用枚举类型。详细信息请参考:腾讯云数据库MySQL枚举类型
  2. 腾讯云云开发:提供了一站式后端云服务,支持使用云函数和数据库来快速开发后端逻辑。可以在云开发中定义和使用枚举类型来管理数据状态和类型。详细信息请参考:腾讯云云开发

请注意,以上只是腾讯云的一些产品示例,其他云计算服务商也提供类似的功能和服务。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

SpringDataJPA笔记(14)-Inheritance注解详解之SINGLE_TABLE

SpringDataJPA笔记(14)-Inheritance注解详解之SINGLE_TABLE 在JPA中使用映射注解Inheritance,有三种策略属性 SINGLE_TABLE – 将所有父类和子类集合在一张表...TABLE_PER_CLASS – 每个子类会生成一张单独的表,父类可以查询所有子类的表数据,参考上一篇笔记Union查询 JOINED – 每个类分别生成一张单独的表,但是每张表只有自己的属性,没有父类的属性...查看表结构,发现有三张表的字段同时存在 这里还有一个dtype的字段,这个是默认的区别的字段名,还可以用@DiscriminatorColumn加@DiscriminatorValue的注解来指定 ?...在swagger页面分别通过三个接口创建三条数据,查看表数据 ?...可以看到通过父类查询可以查询所有数据,而子类只能分别查询出子类的数据

2.4K20

Spring·JPA

在同一个实体层次结构中必须保持同一种使用注解的方式,即一个实体及其子类中必须保证注解方式的一致性。但可以使用注解 @Access 来指明这一个特定的子类使用了另一种不同的注解方式来注解其字段和方法。...,即使它的父类有可能在字段层面使用了注解。...OneToMany/ManyToOne:在这种关系中,一个实体可以有多个子实体,每个子实体只属于一个父实体。 ManyToMany:在这种关系中,一种类型的多个实体,可以含有其它类型实体的多个引用。...Embedded:在这种关系中,其它实体是和其父实体存储在同一个表中(即,每一个表都有两个实体)。...例如:建模一个 Period 类,用来指代在开始和结束日期之间的时间。

3.4K30
  • Swift进阶七——面向对象编程

    递归枚举是拥有另一个枚举作为枚举成员关联值的枚举,编译器在操作递归枚举时必须插入间接寻址层,你可以在声明枚举成员之前使用indirect关键字来明确它是递归的。...实际上,在Swift中,所有的类、结构体和枚举都是可以定义下标操作的,它可以作为访问集合、列表或序列成员元素的快捷方式。你可使用下标通过索引值来设置或者检索值,而不需要为设置和检索分别使用实例方法。...rows和columns分别是列数和行数。 使用数组grid来存储矩阵中每个元素的值。 初始化的时候会传入函数和列数,并且每一个元素都会被初始化为0.0。...你可以在subscript关键字前加上static关键字来标记类型下标,如果是在类中,则还可以使用class关键字,这样可以允许子类重写父类的下标实现。...} }} 使用如下:print(CompassPoint[2]) // north 类的两段式初始化 Swift中类的初始化是一个两段式过程: 在第一个阶段,每一个存储属性被引入类分配了一个初始值

    98140

    typeScript的基础认识

    (使用的是extends关键字),类和接口之间叫实现(使用的是implements) })() 类 // 类:可以理解为模板,通过模板可以实例化对象 // 面向对象的编程思想 (() => { //...// 子类 ---->派生类 // 基类 ---->超类(父类) (() => { // 定义一个类:作为基类(超类/父类) class Person { // 定义属性 name...gender) } // 可以调用父类中的方法 sayHi() { console.log('我是学生类中的sayHi方法') // 调用父类中的sayHi...,需要使用extends关键字 // 子类中可以调整父类中的构造函数,使用的是super关键字(包括调用父类中的实例方法,也可以使用super) // 子类也可以重写父类的方法 })() 多态...(name: string) { // 调用父类的构造函数,实现子类中属性的初始化操作 super(name) } // 实例方法,重写父类中的实列方法

    11810

    如何使用Fluent Nhibernate中的Automapping进行OR Mapping映射

    由于在项目中使用了NHibernate来作为ORMapping构建数据访问层,那么就必须要配置Object和DataTable的映射。...比如我们可以定义如下的规则: 类名和字段名采用每个单词首字母大写的方式而数据库表名和列名使用全部大写,单词之间下划线分割的方式。...(比如CostCenter中有public virtual long Id{get;set;},对应表中的列COST_CENTER_ID) 对于一对多的关系,使用父方的类名作为属性名,表中使用父表的主键列名作为对应的外键列的列名...virtual Class Class{get;set;}) 对于SubClass,采用将多个子对象都存在同一个表中的方式实现,使用“TYPE”列作为DiscriminatorColumn,使用之类的类名作为子类的唯一标识...(比如Course和Student是多对多关系,那么产生的中间表表名为COURSE_STUDENT) 对于枚举,在数据库中使用tinyint也就是一个Byte来存储,枚举在Automapping中作为UserType

    1.1K10

    MyBatis迷信者,清醒点!

    正如十多年前,我呼吁大家可以花点时间关注JDBC本身、iBatis一样,从那时候起,我就一直重复:Hibernate只是对JDBC的封装,如果不能精通JDBC,盲目使用Hibernate会带来致命的性能问题...现在,我希望花点时间来对比一下MyBatis与Hibernate的在“关联查询”、“多态查询”上的的差异,希望让广大一知半解的初中级开发者清醒一点。...图1 4个实体之间的关联、继承关系 上面4个实体中,Person实体包含了一个Address复合属性,Address类比较简单,它就是一个普通的JavaBean。...") public class Person { ... } 上面@DiscriminatorColumn注解为person_inf表定义了一个person_type列,该列作为辨别者列,用于区分每行记录对应哪个类的实例...接下来@DiscriminatorValue("普通人")指定Person实体在辨别者列中保存”普通人“(此处也可使用整数)。

    85130

    Java对象和多态

    类的基本结构 为了快速掌握,我们自己创建一个自己的类,创建的类文件名称应该和类名一致。 # 2.1 成员变量 在类中,可以包含许多的成员变量,也叫成员属性,成员字段 (field) 通过 ....# 方法的定义和使用 在类中,我们可以定义自己的方法,格式如下: [返回值类型] 方法名称([参数]){ //方法体 return 结果; } 返回值类型:可以是引用类型和基本类型,还可以是 void...# 5.2 继承 继承属于非常重要的内容,在定义不同类的时候存在一些相同属性,为了方便使用可以将这些共同属性抽象成一个父类,在定义其他子类时可以继承自该父类,减少代码的重复定义,子类可以使用父类中非私有的成员...接口包含了一些列方法的具体定义,类可以实现这个接口,表示类支持接口代表的功能(类似于一个插件,只能作为一个附属功能加在主体上,同时具体实现还需要由主体来实现) public interface Eat...# 6.1 成员内部类 我们的类中可以在嵌套一个类: public class Test { class Inner{ //类中定义的一个内部类 } } 成员内部类和成员变量和成员方法一样

    30250

    Java基础重构-面向对象

    构造器中引用该构造器正在初始化的对象 在方法中引用调用该方法的对象。 this关键字最大的作用就是让类中一个方法,访问该类里的另一个方法或实例变量。...也就是说,表面上看起来某些方法可以被独立执行,但实际上环视使用this或者 类 作为调用者。 Java的参数传递中可以引用传递吗? 不可以,Java的参数传递方式只有一种,值传递。...Java 里对封装的定义是:每个类都应该封装它内存信息和实现细节,而只暴露必要的方法给其他类使用。但在继承关系中,子类可以直接访问父类的成员变量(内部信息)和方法,从而造成子类和父类的严重耦合。...枚举类与普通类之间有如下区别: 枚举类可以实现一个或多个接口,使用 enum 定义的枚举类默认集成了 java.lang.Enum 类,而不是默认集成 Object 类,因此枚举类不能显示继承其他父类...枚举类可以包含抽象方法吗?

    65530

    从零到一搭建基础架构(4)-base模块搭建下篇

    为了简化业务工程中对于类似工具类的重复开发与重复引用,我们在base包中可以专门划分个utils包 code演示 上面的code演示中的线程池我也写过一篇解析:我用这个线程池捕获了后端妹子的芳心...对于在Spring中如何处理全局异常不是很清楚的可以参考此篇:Spring中优雅的处理全局异常 在Spring的全局异常处理中,它是以异常类的类型来映射说当前的异常该被如何解析处理。...因此我们应该对于这种特定的运行时业务异常做一个父级定义。 那这个运行时的父级异常怎么定义呢?可以使用RuntimeException作为父级异常吗? 肯定不行!为什么?...因此我们应该定义一个顶层的SeviceException来支持errorCode字段,这样我们在抛出特定的异常时就可以使用errorCode去映射国际化信息。...花里胡哨的讲这么多,其实在我看来,只要你的code具备通用性、业务无关性和无需配置开箱即用性你就可以放在base中。 base包实际上就是一个大型的工具包。

    33430

    62道Java核心面试题,这次全了

    在 Java 中,抽象类用于创建具有某些被子类实现的默认方法的类,一个抽象类可以有没有方法体的抽象方法,也可以有和普通类一样有方法体的方法。...接口是对类的某种行为的一种抽象,接口和类之间并没有很强的关联关系,所有的类都可以实现 Serializable 接口,从而具有序列化的功能。 34、一个接口可以实现或者继承另外一个接口吗?...关于基本类型和包装类型更详细的内容,可以参照我之前写了另外一篇文章: 面试官:兄弟,说说基本类型和包装类型的区别吧 37、什么是枚举?...我们可以在一个类中定义一个类,这个类被称为内部类。内部类可以访问外部类的所有变量和方法,内部类中不能有任何静态变量。 44、什么是匿名内部类?...当在子类中重写了父类方法时,可以通过 super 关键字访问父类方法。 也可以使用 super 关键字在子类构造方法中调用父类构造方法,它必须是构造方法中的第一条语句。

    64120

    Java——抽象类与接口的前世今生

    从多个具有相同特征的类中抽象出一个抽象类,以这个抽象类作为其子类的模板,从而避免了子类设计的随意性。...一个类最多只能有一个直接父类,包括抽象类;但一个类可以直接实现多个接口,通过实现多个接口可以弥补Java单继承的不足。 接口和抽象类10大面试题: 1. Java抽象类可以有构造函数吗?...这对两方面都很好,你可以利用接口声明类型的优点和抽象类的灵活性在一个地方实现共同的行为。Effective Java有个很好的章节,介绍如何使用Java的抽象类和接口,值得阅读。 3....是否在抽象类中有抽象方法是引起争论的。我的观点是,抽象类应该有抽象方法,因为这是当程序员看到那个类并做假设的第一件事。这也符合最小惊奇原则。 7. Java抽象类和接口有何不同?...Java抽象类中可以包含main方法吗? 是的,抽象类可以包含main方法,它只是一个静态方法,你可以使用main方法执行抽象类,但不可以创建任何实例。

    81920

    走进 JDK 之 Enum

    什么是枚举 什么是枚举?说实话,在我这些年的开发生涯中,用过枚举的次数大概两只手都可以数的过来。当然你不能说枚举一无是处,只能说是我对 Java 理解的还不够深刻,在可以使用枚举的时候并没有去使用。...找遍了 Enum.java 也没有看到这个方法,既然父类中没有这个方法,那么一定是在子类中声明的了。下面我们来验证一下。...说到这里,你应该对枚举的原理很清楚了。枚举的种种特性都特别契合单例模式,天生的线程安全和反序列化安全,这都是其他单例模式所不具备的。但是在我所见过的代码中,真正使用枚举去做单例的好像少之又少。...真的要使用枚举吗? 站在 Android 开发者的角度,实际上官方是不建议我们使用枚举的。 枚举占用的空间通常是静态常量的两倍。你应该严格避免在 Android 中使用枚举。 其实我并不是完全赞同。...MVP 多了那么多接口和类,我们应该使用吗?在如今的手机内存下,如果你的应用发生了 OOM,我想枚举应该不是罪魁祸首吧。

    66930

    Swift基础语法(二)

    // lee 枚举 在C和OC中,枚举成员在被创建的时候会被赋予一个默认的整数值,枚举的本质就是一组整型值。...枚举的定义 在C和OC中,枚举成员在被创建的时候会被赋予一个默认的整数值,枚举的本质就是一组整型值。...我们可以使用点语法来访问一个结构体实例的属性和方法。...OC中的NSString、NSArray和NSDictionary,他们是作为类来实现的,所以NSString、NSArray和NSDictionary的实例对象总是作为一个引用,而不是拷贝来实现赋值和传递...var person = Person() 访问属性和方法 类属性方法的访问和结构体的属性方法的访问是一模一样的。 我们可以使用点语法来访问一个类的实例的属性和方法。

    2.2K20

    Swift基础语法简化版(续)

    尾随闭包是一个在函数调用的时候,书写在函数括号之后的闭包表达式。当函数中最后一个参数是闭包表达式的时候,在调用该函数的时候,就可以将作为最后一个参数的闭包表达式写成尾随闭包。...\(person2.name),我今年\(person2.age)岁,性别\(person2.gentle)")//打印结果:我叫Lavie,我今年20岁,性别male 访问结构体实例的属性和方法 我们可以使用点语法来访问一个结构体实例的属性和方法...OC中的NSString、NSArray和NSDictionary,他们是作为类来实现的,所以NSString、NSArray和NSDictionary的实例对象总是作为一个引用,而不是拷贝来实现赋值和传递...var person = Person() 访问属性和方法 类属性方法的访问和结构体的属性方法的访问是一模一样的。 我们可以使用点语法来访问一个类的实例的属性和方法。...、枚举中使用泛型,在协议中是不可以这样使用的。

    1.6K20

    6. 单例模式有几种写法?

    “你知道茴香豆的‘茴’字有几种写法吗?” 纠结单例模式有几种写法有用吗?有点用,面试中经常选择其中一种或几种写法作为话头,考查设计模式和coding style的同时,还很容易扩展到其他问题。...一个足够简单的典型例子是TimeUnit类,建议有时间耐心阅读。 上面已经看到,枚举型单例的本质仍然是一个普通的类。实际上,我们可以在枚举型型单例上增加任何普通类可以完成的功能。...要点在于枚举实例的初始化,可以理解为实例化了一个匿名内部类。...为了更明显,我们在Singleton4_1中定义一个普通的私有成员变量,一个普通的公有成员方法,和一个公有的抽象成员方法,如下: // 枚举 // ThreadSafe public enum Singleton4...Singleton4_1中的每一个枚举实例不仅继承了父类Singleton4_1的成员方法print(),还必须实现父类Singleton4_1的抽象成员方法testAbsMethod()。

    5510

    设计模式(7)-JavaScript设计模式之原型模式如何实现???

    我们不再关心对象的具体类型,而是找到一个对象,然后通过克隆来创建一个一模一样的对象。在其他语言很少使用原型模式,但是JavaScript作为原型语言,在构造新对象及其原型时会使用该模式。...原型( Prototype) :创建一个接口来克隆自己 克隆( Clones ) :正在创建的克隆对象 3 实例讲解 在示例代码中,我们有一个CustomerPrototype对象,它可以克隆给定原型对象...在ECMAScript5标准中提出,使用Object.create方法来创建指定的对象,其对象的prototype有指定的对象(也就是该方法传进的第一个参数对象),也可以包含其他可选的指定属性。...返回值:一个新对象,带着指定的原型对象和属性。 4.2 用 Object.create实现继承 下面的例子演示了如何使用Object.create()来实现类式继承。...今天的学习就到这里,你可以使用今天学习的技巧来改善一下你曾经的代码,如果想继续提高,欢迎关注我,每天学习进步一点点,就是领先的开始。

    1.2K51

    在Lua中实现对UE4 C++代码的自动补全

    我们项目接入的是slua-unreal,可以提供UE4中进行Lua开发的基础支持。 不过,如何能够保证在UE4中进行Lua开发的效率?Lua能够像C++或者C#一样支持代码补全和跳转吗?...遍历某类中的所有字段 使用TFieldIterator。这严格来说并不是一个函数。这是UE4提供的一个迭代器类,可以访问某个UClass(及其子类)下的所有指定类型的字段。...同理,我也可以获取到这个类中的所有UProperty。 PS: 这个遍历会将本类和其所有父类的字段都遍历一遍。如果不加处理,最终生成的临时文件会非常大,严重影响IO速度和整体生成速度。...获取父类 使用UStruct::GetSuperStruct()来获取父类 获取类名前缀和类名 使用UStruct::GetPrefixCPP()来获取类名前缀。...笔者之前用python实现过一个简单的模板引擎(如果感兴趣,可以移步这里:从头实现一个简单模板引擎),已经在项目中大量使用。因此这次也是直接拿来用也具有最低的开发成本。

    6.3K32

    Kotlin|这些隐藏的内存陷阱,你应该熟记于心

    在某种意义上,他们是枚举类的扩展:枚举类型的值集合也是受限的,但每个枚举常量只存在一个实例,而密封类的一个子类可以有可包含状态的多个实例。...对比字节码可以发现,相比最开始的示例,我们的父类 Fruit 中减少了一个 sum 变量的损耗。 ---- 那有没有方法能不能把 getsum() 和 setSum() 也一起移除呢?‍...♂️ 答案是可以,我们利用 接口 改造即可,如下所示: 如上所示,我们增加了一个名为 IFruit 的接口,并让 密封父类 实现了这个接口,子类默认在构造函数中实现该属性即可。...如下图所示,我们对上述示例做一个论证: Jvm: 我谢谢你。 推荐示例 我们在文章最开始提到了,Kotlin inline ,一般建议用于 高阶函数(lambda) 中。为什么呢?...但如果仅用于保存一些key,那么完全可以使用 object Class 替代,如下所示,将其回归到一个类中: object Keys { const val DEFAULT_SUM = 10

    82330

    Java课程主要内容回顾

    构造方法可以重载吗?一个类可以有多个构造方法吗? 构造方法与类同名,没有返回值。构造方法可以重载,即在同一个类中可以有多个构造方法,它们具有不同的参数列表,参数表为空的,叫缺省构造方法。...派生性:子类可以在继承的基础上拓展,增加新的成员变量和方法。 多态性:子类对象可以被当做父类对象使用,这是多态性的一种表现。 父子关系:子类是父类的扩展,拥有父类的属性和行为。...抽象类、接口和枚举 抽象类的定义要求和完全抽象类的接口定义方式?一个类只能有一个父类但是可以有多个接口,关键词和成员变量的定义? 抽象类使用abstract关键字定义,可以包含抽象方法和具体方法。...(没考,了解一下) 枚举是一种特殊的类,限制对象的类型在一个有限的范围内。枚举常用于定义常量集合,列出一组可能的值。Java中的枚举使用enum关键字定义。...第九章:Java文件流I/O 当然,请让我逐一回答您提出的问题。 文件和目录处理(对目录的处理及之后不考) 在Java中,如何使用File类来处理文件?

    10710

    面试中单例模式有几种写法

    “你知道茴香豆的‘茴’字有几种写法吗?” 纠结单例模式有几种写法有用吗?有点用,面试中经常选择其中一种或几种写法作为话头,考查设计模式和coding style的同时,还很容易扩展到其他问题。...本质上和饿汉模式相同,区别仅在于公有的静态成员变量。 用枚举实现一些trick 这一部分与单例没什么关系,可以跳过。如果选择阅读也请认清这样的事实:虽然枚举相当灵活,但如何恰当的使用枚举有一定难度。...一个足够简单的典型例子是TimeUnit类,建议有时间耐心阅读。 上面已经看到,枚举型单例的本质仍然是一个普通的类。实际上,我们可以在枚举型型单例上增加任何普通类可以完成的功能。...为了更明显,我们在Singleton4_1中定义一个普通的私有成员变量,一个普通的公有成员方法,和一个公有的抽象成员方法,如下: // 枚举 // ThreadSafe public enum Singleton4...Singleton4_1中的每一个枚举实例不仅继承了父类Singleton4_1的成员方法print(),还必须实现父类Singleton4_1的抽象成员方法testAbsMethod()。

    89060
    领券