读书人

hibernate 注解 一对一 如何写

发布时间: 2013-12-19 00:33:34 作者: rapoo

hibernate 注解 一对一 怎么写
有A B两张表
表A字段:
id name bid(外键)
表B字段:
id name

实体类


@Eneity
public class A {

@Id
@GeneratedValue
private int id;
private Sreing name;

@OneToOne //这里该怎么写
private int bid;

//setter getter......
}

@Eneity
public class B {

@Id
@GeneratedValue //这里要写什么?
private int id;
private Sreing name;

//setter getter......
}


最后hql怎么写 才能使
select * from A

这样的 返回的list里面 有B的name
[解决办法]
楼主A的实体类写错了

@Eneity
public class A {

@Id
@GeneratedValue
private int id;
private Sreing name;

@OneToOne //这里该怎么写
private B b;

//setter getter......
}

这样查询出来的A中就有B的name了 list.get(i).getB().getName();
[解决办法]
hibernate推荐用双向多对一来实现一对一
[解决办法]


@Entity
public class A {
//最好还是把这些注解写在getter上
@Id
@GeneratedValue
private int id;
private String name;
private int bid;
@OneToOne
@JoinColumn(name="bid",insertable=false,updatable=false)
private B b;

//setter getter......
}

@Eneity
public class B {
//最好还是把这些注解写在getter上
@Id
@GeneratedValue
private int id;
private String name;
@OneToOne(mappedBy="b")//双向一对一关联以A类的b属性配置来进行关联
private A a;
//setter getter......
}


[解决办法]
不会的可以看这个 hibernate注解文档http://docs.jboss.org/hibernate/annotations/3.4/reference/zh_cn/html_single/

读书人网 >Java Web开发

热点推荐