2014-11-06 80 views
2

假設我有兩個hibernate實體類:class Playerclass Partner,它們都將參與郵寄。這就是它們都包含以下字段:是以正確的方式從另一個類/接口繼承實體類嗎?

String email; 

Integer id; 

String name 

我想如下創建一個接口:

public interface Recipient{ 

    public String getEmail(); 

    public String getName(); 

    public Integer getId(); 
} 

從本質上講,這些類將類似如下:

@Entity 
@Table(name = "player") 
@Inheritance(strategy = InheritanceType.JOINED) 
class Player implements Recipient 

@Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    @Column(name = "id") 
    private int id; 

    @Column(name = "ps_id") 
    private String psId; 

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

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

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

    //GET, SET and inherited method impl 
} 

這是正確的方式做到這一點或在冬眠不應寫一個實體類,從另一個類/接口繼承一個? Just POJO

回答

1

您可以在接口類上使用@MappedSuperclass註釋。 AFAIK這是正確的做法。

+0

事情是沒有必要創建一個實體類。我只是想創建一個接口來封裝我的實體的column_name。 – 2014-11-06 09:44:06

+0

如果你只想放些吸氣劑,不需要註解。如果你將一些數據庫字段,將它們映射到列,那麼你需要註釋。你可以查看這個鏈接: https://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Basic_JPA_Development/Entities/MappedSuperclass – 2014-11-06 09:55:05

+0

有趣......據瞭解,沒有必要將'@ MappedSuperclass'實體映射到database_table。我們只需定義可能會被覆蓋的列名稱。對? – 2014-11-06 11:39:04

相關問題