Hibernate - @JoinTable - 通过classMetaData提取外键

时间:2015-11-30 15:27:57

标签: java hibernate

我有一个如下的实体:

@Entity
@Table(name="ATTACHMENTS")
public class Attachment{

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    protected Long id;

    @Column(name = "USERNAME")
    private String attachmentUsername;

    @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
    @JoinTable(name = "ATT_DOC",
            joinColumns = {
                    @JoinColumn(name = "ID_DOC", referencedColumnName = "ID")
            },
            inverseJoinColumns = {
                    @JoinColumn(name = "ID_ATT", referencedColumnName = "ID")
            })
            private Set<Document> documents = new HashSet<>();
}    

我有一个映射像^^^^的实体。附件和文档之间的关系是@ManyToMany。我需要在运行时提取外键(列的确切名称)。不幸的是,我可能不会使用任何数据库查询或数据库元数据(如connection.getMetaData)。     我可能只使用hibernate sessionFactory()。getAllClassMetadata

所以我有每个映射实体的元数据(很多属性,如subclassPropertyTypeClosure,subclassPropertyNameClosure ......)。但我找不到任何关于jointable外键的信息。谁有类似的问题?     提前致谢

0 个答案:

没有答案