首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

hibernate 注解 一对一 如何写

2013-12-19 
hibernate 注解 一对一 怎么写有A B两张表表A字段:idnamebid(外键)表B字段:idname实体类@Eneitypublic cla

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/

热点排行