当前位置: 代码迷 >> J2EE >> JPA 单向一对多关联 中间表生成唯一索引有关问题
  详细解决方案

JPA 单向一对多关联 中间表生成唯一索引有关问题

热度:85   发布时间:2016-04-22 03:00:15.0
JPA 单向一对多关联 中间表生成唯一索引问题
目前的需求是这样的:
有A、B两个实体,A对B形成一对多的关联关系,目前我只需要配置单向一对多关联,即只在A中配置一对多,B中不做任何配置,具体如下:
Java code
public class A implements Serializable {    private static final long serialVersionUID = -1317006094950982121L;    //其余属性及get、set方法省略    @Id    @GeneratedValue(strategy = GenerationType.AUTO)    private Long id;    @OneToMany (cascade = {CascadeType.REFRESH, CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE}, fetch=FetchType.LAZY)    private List<B> b = new ArrayList<B>();}public class B implements Serializable {    private static final long serialVersionUID = -1317006094950982121L;    //其余属性及get、set方法省略    @Id    @GeneratedValue(strategy = GenerationType.AUTO)    private Long id;    //注:A中单向一对多配置,B中不配置A属性}


如果像上述配置的话,因为未在B中进行关联配置,这样会生成一个中间表A_B来维护关联关系,A_B中除了已生成必要的外键索引外,还对B_ID字段生成了一个唯一索引,这是不应该的,因为A_B中肯定会有重复记录。

请问:通过A中加什么注解,才能在生成表的同时不生成唯一索引?请各位赐教!!!(认为我表述不清楚的可以纠正)

------解决方案--------------------
去除"@Id"不行么?
------解决方案--------------------
有索引难道对你的业务有影响?
------解决方案--------------------
对阿

有索引 难道不可以吗
------解决方案--------------------
这是a_b产生的问题,还是需要在b中配置关联。。。
------解决方案--------------------
A_ID B_ID
----------------------
1 3
2 3

 你这个是一张中间表吗?
------解决方案--------------------
大哥,如果你在A中配一对多的话,说明A的ID在B中也是存在的。
即A中如果有一个ID=1
B中会一条或多条数据如1,4;1,5;……这才叫一对多 怎么会出来一个中间表
  相关解决方案