繁体   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