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

何时在休眠状态下使用DiscriminatorValue注释

宇文育
2023-03-14
问题内容

什么和何时在休眠状态下使用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 |
-----------------------

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



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

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

  • 问题内容: 我需要在hibernate状态下禁用ONLY_FULL_GROUP_BY。这是我当前的会话工厂。我不确定如何在其中指定sql_mode =’‘。 问题答案: 我认为您可以在JDBC连接字符串中进行设置,例如

  • 问题内容: 我相信只有两种使用Hibernate加载对象的方法,即延迟加载和一种渴望加载。延迟加载有其自身的优势,它不会加载很多对象,而只是在需要时才加载它们。我还了解到,如果您想强制为一个对象加载所有子代,则只需调用即可。假设我们有以下对象 假设我们有一些客户在我们的系统中有订单,并且该订单可能不止一个甚至为空。所以我的问题是,在这种情况下始终使用渴望加载会更好吗?我们需要与客户相关的订单的大小

  • 问题内容: 我相信只有两种使用Hibernate加载对象的方法,即延迟加载和一种渴望加载。延迟加载有其自身的优势,它不会加载很多对象,而只是在需要时才加载它们。我还了解到,如果您想强制为一个对象加载所有子代,则只需调用即可。假设我们有以下对象 假设我们的客户在我们的系统中有订单,并且该订单可能不止一个甚至为空。所以我的问题是,在这种情况下始终使用渴望加载会更好吗?我们需要与客户相关的订单的大小或一

  • 问题内容: 我想在 Hibernate中 执行以下查询吗? 问题答案: 假设您的表是由一个类和实例变量映射的。然后,您将执行以下操作: 它应该返回您要寻找的结果。您只需要使名称适应您的类和参数名称即可。