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

我可以在接口上使用@MappedSuperclass注释吗?

瞿博学
2023-03-14
问题内容

我想将通用映射分组到中interface,但不能使用,abstract superclass因为我的实体已经扩展了另一个class。所以我需要一个类似下面的界面:

@MappedSuperclass
public interface NamedEntity {
    @Column(name = "name")
    String getName();
    void setName(String name);
}

我想像下面这样使用它:

public class Person {
    private Long id;
    private String name;
    public Long getId(){ return id; }
    public void setId(Long id){ this.id = id; }
    public String getName() { return name; }
    public void setName(String name){ this.name = name; }
}

@Entity
@Table(name = "person_entity")
public class PersonEntity extends Person implements NamedEntity {
    @Id
    @GeneratedValue
    @Column(name = "id")
    @Override
    public Long getId() { return super.getId() }
}

我的意思是说这项工作可行吗?

  1. 我可以在接口上使用@MappedSuperclass注释吗?
  2. Hibernate是否支持接口?

问题答案:

号如前所述这里:

JPA不直接支持接口或变量关系。



 类似资料:
  • 问题内容: 我的实体具有以下结构: 我得到以下异常: 当我在Intermed类上将@MappedSuperclass更改为@Entity时,一切正常。使用@MappedSuperclass和@SequenceGenerator是否有任何问题?还是我错过了什么? 问题答案: 这是JPA 1.0规范对注释的说明: 9.1.37 SequenceGenerator批注 该注解定义了可以由名称当用于指定的

  • 问题内容: 我无法弄清楚能够注释Java接口的用例。 也许有人可以给我一个例子? 问题答案: 我在Spring中使用它来注释接口,其中注释应应用于所有子类。例如,假设您有一个Service接口,并且您可能具有该接口的多个实现,但是无论是否有注释,都希望应用安全注释。在这种情况下,对接口进行注释最有意义。

  • 问题内容: 我可以在JSON文件中使用注释吗?如果是这样,怎么办? 问题答案: 没有。 JSON应该都是数据,如果包含注释,那么它也将是数据。 您可能有一个称为(或其他名称)的指定数据元素,使用JSON数据的应用程序会忽略该数据元素。 在生成/接收JSON的过程中添加注释可能会更好,因为它们应该事先知道什么是JSON数据,或者至少知道其结构。 但是,如果您决定:

  • 问题内容: 我是JAX-RS的新手,我试图了解注释的工作方式。 在javadoc中有六个等级的列表()。但是,我在网络上找到将this注释与其他类型一起使用的代码,例如: 是否有可以与此注释一起使用的受支持类型的列表?在执行标准之间,此列表是否会更改? 我目前正在试验Jersey,我担心自己写的代码无法移植到其他JAX-RS实现中。 问题答案: 铆接的JAX-RS 规范定义了你可以通过注入的所有标

  • 我是 JAX-RS 的新手,我正在尝试了解注释应该如何工作。 在javadoc中有一个包含六个类的列表(< code >应用程序、< code>UriInfo、< code >请求、< code>HttpHeaders、< code >安全上下文、< code >提供者)。但是,我在网上找到了将this批注用于其他类型的代码,例如: 是否有可用于此批注的支持类型列表?该列表在标准实施期间是否发生变

  • 问题内容: 我想知道是否有一种方法可以指定在类方法之前调用方法。我知道这样的事情应该是可能的,因为JUnit具有before(),所以我想做的事情是相似的。 这是我想做的一个具体例子 基本上我想要一个注释在foo()之前告诉编译器或jvm调用init() 问题答案: 如果有的话,您可以使用此接口的实例和方法的内部包装,您可以自由检查方法是否带注释,并根据该方法执行一些操作: 或者,您可以尝试使用A