大家好,我在开发过程中遇到这样的问题,希望高手帮忙解决一下:
实体类: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的关系产生了错位,希望高手帮忙解决,谢谢
实体类: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的关系产生了错位,希望高手帮忙解决,谢谢
解决方案 »
- jqgrid editrules custom:true,custom_func:
- HttpClient中的getResponseBodyAsString没有反应!!高手来
- HttpClient Cookie 获取并转发
- java, 为什么找工作这么难?一个月无功而返!望高手支招
- 如何将查询出来的记录集分成 4 列显示在页面中?
- WebView有实用价值吗?用于在资源管理器中通过文件右键直接访问ASP/JSP/PHP/.net等文件的网页效果
- 现有的struts+spring+jpa集成activiti的问题
- tomcat连接池中文问题
- 关于<jsp:useBean...>的问题,请各位进来看看
- jsp的怪问题,希望大家来看看,有没有什么好的解决方法!!!
- 高手们~ 为小弟指明前进方向吧!!!
- JQuery实现显示数据的table隔行显示不用颜色
1、一方ID对应另一方的外键
2、一方ID对应另一方的主键
用第二种方法就不会错位。但第二种方法楼主的配置写错了。