如何设置@OneToMany自动生成表的模式?

时间:2015-08-03 14:59:23

标签: java hibernate postgresql

我想将以下所有自动生成的表放入特定的架构中。

@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还将列表映射表放在与其他模式相同的模式中?

2 个答案:

答案 0 :(得分:1)

我认为你应该使用@JoinTable注释,至少允许在标准JPA中设置模式名称。检查JavaDoc以查找Java EE 7Java EE 6

因此它类似于@JoinTable(name = "master_to_videos", schema = "test" ),如果需要,您还可以指定连接列的名称。

答案 1 :(得分:1)

Hibernate将在定义实体的persistence.xml中创建表。因此,如果MasterTable和VideoEntity都在persistence.xml中,它将在配置的数据模式中创建两个表。