2015-12-13 105 views
1

快速休眠的問題 - 如何使用Hibernate的註解來定義這個類作爲一個實體 -冬眠子實體

public class NativeType { 
    private long id;  
    private String name; 
    private int maxPrecision; 
    private byte maxScale; 
    private DataStoreProvider provider; 

在AbstractDataStoreProvider類鏈接爲地圖集 -

public abstract class AbstractDataStoreProvider implements DataStoreProvider, 
    Serializable{ 

    private Map<String, NativeType> uniqueNativeTypes; 
    .. 

public interface DataStoreProvider { 

所以我可以存儲在這個數據庫表像這樣 -

**datastore_provider** 
provider_id | provider_name 

**native_type** 
native_type_id | name | max_precision | max_scale | provider_id 

我認爲它的我,但我不能naviga Hibernate規範很容易。 Java新手,JPA + Hibernate更新。感謝指導!

回答

1

代碼示例

我想你可以使用下面的 -

@Entity 
@Table(name = "native_type") 
public class NativeType { 

    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    @Column(name = "native_type_id") 
    private Long id; 

    private String name; 

    @Column(name = "max_precision") 
    private int maxPrecision; 

    @Column(name = "max_scale") 
    private byte maxScale; 

    @ManyToOne 
    @JoinColumn(name="provider_id") 
    private DataStoreProvider provider; 

    // rest of the class (getter setter etc.) 
} 

ID生成

我假設你生成自動的數據庫ID,所以我標它與@GeneratedValue註釋。至於strategy,我指定AUTO這隻適合本地實驗。對於生產級應用,您必須在SEQUENCE,IDENTITYTABLE之間進行選擇。

關係映射

我以爲你會太創建DataStoreProvider實體。在這種情況下,您可以按照上述方式指定它們之間的關係。

參考

有關進一步的參考,你可以諮詢this excellent book

+0

太棒了!謝謝@MD Sayem Ahmed我會給這個鏡頭和分享! –

+0

Pro JPA2是否引用您與Hibernate共享的交易? –

+0

@BiAct:它討論了JPA,你可以很容易地使用Hibernate作爲實現。既然你用'jpa'標記了這個問題,我認爲這是你正在使用的。爲了正確配置JPA的休眠,你可以查看一下[我的博客文章](http://codesod.com/category/java/jpa/)。有一件事 - 他們只展示瞭如何爲Java SE環境配置它,但是您也可以非常容易地爲Web環境擴展它們。 –