对于映射到数据库表的bean,hibernate中的默认继承策略是什么?

dev*_*per 4 java hibernate jpa

这是我在stackoverflow中的第一个查询,我想我提供了所有必要的输入:

我在下面提供了我的Java bean和数据库表详细信息:

******Java Bean类:***

import java.sql.Timestamp;

import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.Id;

import javax.persistence.Table;

@Entity

@Table(name = "BANK_MESSAGES")

public class messagesBean implements Serializable

{

    @Id
    @Column(name="msg_id")
    private String msg_id;

    @Column(name="msg_date")
    Timestamp msgDateTime;

    @Column(name="message")
    private byte[] message;

    @Column(name="msg_type")
    private String msg_type;

    //Getters and Setters for the above fields
}
Run Code Online (Sandbox Code Playgroud)

下面是我的数据库表(Oracle)的DDL:

create table BANK_MESSAGES
(msg_id varchar2(10),
msg_date timestamp,
message blob,
msg_type varchar2(5)) ;
Run Code Online (Sandbox Code Playgroud)

我试图理解hibernate中的默认继承策略是什么是映射到上面的数据库表的bean?

JB *_*zet 9

如果你只有一个没有任何子类的实体,那么继承是无关紧要的.

否则,javadoc有答案:

注释类型 Inheritance

@Target(value=TYPE)
@Retention(value=RUNTIME)
public @interface Inheritance
Run Code Online (Sandbox Code Playgroud)

定义要用于实体类层次结构的继承策略.它在实体类上指定,该实体类是实体类层次结构的根.如果未指定继承注释,或者未为实体类层次结构指定继承类型,则使用SINGLE_TABLE映射策略.

(强调我的).