大家好,我在开发过程中遇到这样的问题,希望高手帮忙解决一下:
实体类:public class A{
            private int id;
            private int a1;
            private B b;
            ...
            @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
   @PrimaryKeyJoinColumn
            public B getb() {
               return this.b;
             }
          }          public class C{
            private int id;
            private int c1;
            private B b;
            ...
            @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
   @PrimaryKeyJoinColumn
            public B getb() {
               return this.b;
             }
          }
          public class B{
            private int id;
            private int b1;
            private A a;
            private C c;
            ...
            @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
   @PrimaryKeyJoinColumn
            public A geta() {
               return this.a;
             }
             ...
            @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
   @PrimaryKeyJoinColumn
            public B getb() {
               return this.b;
             }
          }这是实体类的配置,数据库是这样写的:
create table a(
   id int primary key not null,
   a1 int ;
   foreign key (id) references b(id);
)
create table c(
   id int primary key not null,
   c1 int ;
   foreign key (id) references b(id);
)
create table b(
   id int primary key not null,
   b1 int ;
)
这样配置好了之后,a与b是一对一的关系,a与c也是一对一的关系,a与c不会同时插入,但是当a与b插入很多数据后,再插入c和b的一些数据,然后在插入a和b的数据,此时进行查询,在查询的时候,a与b的对应就产生了错位,形象的说就是a表id为一的对应b表id为一的,然后c表id为一的对应b表id为2的,再插a的时候a表id为2的应该对应b表id为3的,我想要这样的效果,但是在我上面的配置之后,a与b的关系产生了错位,希望高手帮忙解决,谢谢