当前位置: 首页 > 面试题库 >

何时在hibernate状态下使用DiscriminatorValue注释

终祯
2023-03-14
问题内容

什么和何时在hibernate状态下使用DiscriminatorValue注释的最佳方案是什么?


问题答案:

这两个链接帮助我最了解继承概念:

http://docs.oracle.com/javaee/6/tutorial/doc/bnbqn.html

http://www.javaworld.com/javaworld/jw-01-2008/jw-01-jpa1.html?page=6

要了解区分符,首先您必须了解继承策略:SINGLE_TABLE,JOINED,TABLE_PER_CLASS。

鉴别符通常在SINGLE_TABLE继承中使用,因为您需要一个列来标识记录的类型。

示例:您有一个学生类和两个子类:GoodStudent和BadStudent。Good和BadStudent数据都将存储在1个表中,但是我们当然需要知道类型,然后才是(DiscriminatorColumn和)DiscriminatorValue出现的时间。

注释学生班

@Entity
@Table(name ="Student")
@Inheritance(strategy=SINGLE_TABLE)
@DiscriminatorColumn(discriminatorType = DiscriminatorType.STRING,
    name = "Student_Type")
public class Student{
     private int id;
     private String name;
}

坏学生班

@Entity
@DiscriminatorValue("Bad Student")
public class BadStudent extends Student{ 
 //code here
}

优秀学生班

@Entity
@DiscriminatorValue("Good Student")
public class GoodStudent extends Student{ 
//code here
}

因此,现在 Student 表将具有一个名为 Student_Type 的列,并将其中保存Student 的
DiscriminatorValue

-----------------------
id|Student_Type || Name |
--|---------------------|
1 |Good Student || Ravi |
2 |Bad Student  || Sham |
-----------------------

请参阅我上面发布的链接。



 类似资料:
  • 问题内容: 什么和何时在休眠状态下使用DiscriminatorValue注释的最佳方案是什么? 问题答案: 这两个链接帮助我最了解继承概念: http://docs.oracle.com/javaee/6/tutorial/doc/bnbqn.html http://www.javaworld.com/javaworld/jw-01-2008/jw-01-jpa1.html?page=6 要了解

  • 问题内容: 我需要创建一个查询,并且需要和。 我正在解决使用该类的问题,该类是我在某个地方下载的。 这是我尝试实现的SQL: 这是代码,我在其中使用Hibernate类: 错误是: 如果我用类注释该行,则查询工作正常,但是我没有在SQL中获得过滤器… 基本上,查询会尝试在一个主详细信息架构中检索同时显示详细信息列表的所有主记录,例如,如果您想知道“哪些发票同时包含A和B产品”。 这就是为什么如果子

  • 问题内容: Hibernate不支持union,所以我想单独运行sql。但是最后如何合并这些值? 请告知如何分别执行两个sql,最后如何合并这些值? 问题答案: 请注意,UNION中的每个SELECT语句必须具有相同的列数。 这些列还必须具有相似的数据类型。另外,每个SELECT语句中的列必须具有相同的顺序。 如果是这样,请向您的查询添加别名: 您可以通过以下方式使用SQLQuery和AliasT

  • 当Jackson试图将我的数据解析为Json时,我遇到了这个异常: 我有以下实体(名字已经用Stuff和Thing代替): 材料: 东西: 我一直在搜索这种错误。当json解析器试图解析由于延迟加载而未加载的对象时,似乎会发生这种情况。默认情况下,延迟加载似乎处于打开状态。我想避免将所有内容设置为“渴望”,所以我改为使用@JsonIgnore。这对我来说没有任何改变。如果能得到帮助,我将不胜感激,

  • 问题内容: 什么时候使用独立标准?使用分离标准而不是普通标准有什么好处? 谢谢! 问题答案: 根据文档 一些应用程序需要在“分离模式”下创建条件查询,在该模式下,Hibernate会话不可用。此类可以在任何地方实例化,然后可以通过将会话传递到来获得一个Criteria 。所有方法都具有与Criteria接口的相应方法相同的语义和行为。

  • 问题内容: 我正在编写一个程序,该程序侦听系统剪贴板中的更改。当剪贴板的内容更改时,侦听器在单独的线程上运行并执行某些操作(例如,写入文件)。 我正在使用ClipboardOwner接口轮询剪贴板,以便当我的程序失去对剪贴板的所有权(意味着另一个进程已修改剪贴板)时,在我的程序中触发了一个事件,可让我读取更改。 问题是,在OSX中运行时,仅当我手动将Cmd-Tab移至扩展坞中正在运行的进程图标时,