ManyToMany属性

时间:2011-10-16 18:04:29

标签: java hibernate

这可能是一个愚蠢的问题或者可能会被问到,但我没有找到哪些帮助了我。 你们中的任何人都可以告诉我ManyToMany关系中描述的这些属性是做什么的。如果有任何我错过的并且应该在ManyToMany地图中使用,请帮助我。

@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name = "customer_service",
    joinColumns = {@JoinColumn(name = "customer_id")},
    inverseJoinColumns = @JoinColumn(name = "service_id"))

1 个答案:

答案 0 :(得分:0)

这是(我猜)CustomerService表之间的多对多关系的描述。从技术上讲,所有属性都是可选的,所以:

@ManyToMany
private Set<Customer> services;
Service中的

会很好(如果关系是双向的话,Customer侧的注释类似。)

现在假设你有一些基本的关系数据库设计知识:

  • @JoinTable描述了一个连接表,用于存储客户和服务之间的关系。每行包含一个对客户的引用和一个对服务的引用。此表将命名为customer_service

  • joinColumns - 引用关系第二面的列的定义 - customer_id

  • inverseJoinColumns - 引用回到起始端的列的定义 - 在此示例中为service_id

连接和反向连接列是对称的 - 如果您在另一侧定义了多对多关系,则可以切换它们。否则一切都将从Java透视图开始,但Hibernate将从customer_idService表创建一个外键,反之亦然,并相应地插入值。