簡體   English   中英

如何設置@OneToMany 自動生成表的模式?

[英]How to set the schema of @OneToMany autogenerated tables?

我想將以下所有自動生成的表放入特定模式。

@Entity
@Table(name = "master_table", schema = "test")
public class MasterTable {
    @OneToMany
    private List<VideoEntity> videos;

    @Entity
    @Table(name = "video_entity", schema = "test")
    public static class VideoEntity {

    }
}

結果: test模式中有兩個實體表,但public模式中也有一個名為master_table_videos的列表映射。

問題:我如何告訴hibernate也將列表映射表放在與其他表相同的模式中?

我認為您應該使用@JoinTable批注,至少該批注允許在標准JPA中設置架構名稱。 檢查JavaDoc for Java EE 7Java EE 6

因此,就像@JoinTable(name = "master_to_videos", schema = "test" ) ,如果需要,您還可以指定連接列的名稱。

Hibernate將在定義實體的任何persistence.xml中創建表。因此,如果MasterTable和VideoEntity都在persistence.xml中,它將在配置的數據模式中創建這兩個表。

我同意Hein Blöd我在任何其他注釋(如 @ManyToOne @OneToMany)之后測試了 @joinTable 注釋...至於你的例子,它變成了這樣

@OneToMany
@JoinTable(schema = "testSchema" )
private List<VideoEntity> videos;

testSchema被 Hibernate 解釋為test-schema

我知道這是針對一個老問題的,我正在寫這篇文章,以便現在任何人都可以找到我搜索 inte.net 的正確答案,這是我發現的第一個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM