首页
学习
活动
专区
工具
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.3K20

Spring·JPA

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

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

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

    96640

    typeScript的基础认识

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

    10910

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

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

    1.1K10

    Java基础重构-面向对象

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

    64830

    Java对象多态

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

    29150

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

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

    31930

    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实体辨别者中保存”普通人“(此处也可使用整数)。

    83930

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

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

    63520

    走进 JDK 之 Enum

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

    66430

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

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

    81320

    Swift基础语法(二)

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

    2.2K20

    Swift基础语法简化版(续)

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

    1.6K20

    设计模式(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.2K32

    面试单例模式有几种写法

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

    87960

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

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

    79930

    Java课程主要内容回顾

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

    10010

    java进阶的16个知识点

    不能使用long,范围太大,不必要 可以使用char,用该字符对应的ASCLL码作为数组长度 7.移位运算:5<<35,会首先进行35%32的求余运算?...不可以,再调用子类的方法时,不知道是调用继承的方法,还是重写的方法 方法重写,更新方法的实现,是方法的替换 方法隐藏:静态方法,实现一个新方法,只是外无法调用原来的方法 (其实很容易理解,静态方法属性都是放在静态存储区的...; } } 可以看到调用Sub.T()时,调用的是Sub的T()方法,但是并没有重写覆盖掉的方法,因为Sub构造函数调用T()方法时,依然生效 12.为什么不能在静态方法中使用this?...枚举类型本质上是一个final,继承自java.lang.Enum 枚举类型保持被枚举对象的引用,且用public static final进行修饰,这样外界就可以直接通过枚举类型.被枚举对象来访问该对象...,包装可以作为集合容器的keyvalue,基本数据类型不可以 16.内部成员是如何绑定外围对象的?

    52270
    领券