如两张表A(aid varchar(20) primary key,aName varcahr(20))
B(bid primary key auto_increment,aid,bname)
怎么从A查询出来插入到B表
不是用那个Hql :insert into....select

解决方案 »

  1.   

    如果不用HQL,那就在代码中实现吧
      

  2.   

    我用HQL的时候总是插入不进去产,总是说没有映射,我用的是Annotation注解,但是可以在数据库脚本执行!不知道为什么??
      

  3.   


    package com.zrc.blog.model;import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.Id;import org.hibernate.annotations.GenericGenerator;@Entity
    public class A { private String aid;

    private String aName; @Id
        @GeneratedValue(generator = "paymentableGenerator")
        @GenericGenerator(name = "paymentableGenerator", strategy = "assigned")
        @Column(name="impId")
    public String getAid() {
    return aid;
    } public void setAid(String aid) {
    this.aid = aid;
    } public String getaName() {
    return aName;
    } public void setaName(String aName) {
    this.aName = aName;
    }
    }
    package com.zrc.blog.model;import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.Id;
    import javax.persistence.JoinColumn;
    import javax.persistence.ManyToOne;@Entity
    public class B { private int bid;

    private String bname;

    private A aid; @ManyToOne
    @JoinColumn(name = "aid",nullable = false)
    public A getAid() {
    return aid;
    } public void setAid(A aid) {
    this.aid = aid;
    } @Id
    @GeneratedValue
    public int getBid() {
    return bid;
    } public void setBid(int bid) {
    this.bid = bid;
    } public String getBname() {
    return bname;
    } public void setBname(String bname) {
    this.bname = bname;
    }

    }
      

  4.   


        @Id
        @GeneratedValue(generator = "paymentableGenerator")
        @GenericGenerator(name = "paymentableGenerator", strategy = "assigned")
        @Column(name="impId")
    这个改一下,是 @Column(name="aid")
      

  5.   

    楼主这个映射是从B到A的单向关系,可以试试下面的代码:A a = em.find(A.class, xxxx);B b = new B();b.setAid(a);em.persist(b);