我有个项目类: projrectvo   
有个项目状态类: billstatusvo//项目类: ProjectVO
  private String billno;//项目编码
private String name;//项目名称
  private String billstatus;//项目状态
private BillStatusVO billstatusvo;项目状态类: Billstatusvo
  private Integer statusid;//项目状态
private String statusname;//项目状态名称
private String note;//备注项目类里面的项目状态 引用 项目状态的里面的。现在就是不知道 每只many-to-one 在project里面怎么配值。
我是在要查询项目信息的时候,把项目状态表的名字现实出来,现在只是主外键关联。 请高手帮我配置下,我自己弄错了。 很郁闷.....  
我叫月月姐,麻烦您了 谢谢

解决方案 »

  1.   

    额  小妹  我不太懂hibernate  要是光用sql  ibatis 我倒是可以告诉你 (*^__^*) 嘻嘻……
      

  2.   

    在项目类中配置对象:private BillStatusVO billstatusvo;   生成get/set方法
    hbm文件配置<many-to-one name="statusid" class="类的全路径.BillStatusVO" fetch="select" lazy="false">
                <column name="STATUSID" precision="22" scale="0">
                  <comment>中文注释</comment>  
                </column>  
    </many-to-one>不知道你是不是想这样配???
      

  3.   

    <many-to-one
                    name="billstatusvo"
                    column="项目表的项目状态属性"
                    class="BillStatusVO"
                    not-null="true"
                    lazu="false"
               />
      

  4.   

    哦对了,class是BillStatusVO 的全路径
      

  5.   

    这个应该用OneToOne吧?看你的设计一个项目只有一个状态啊!代码贴上:
    第一个项目类:package com.alan;import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.Id;
    import javax.persistence.OneToOne;@Entity
    public class ProjectClass {
    private Integer id;
    private ProjectStat projectStat;

    @Id
    @GeneratedValue
    public Integer getId() {
    return id;
    }

    public void setId(Integer id) {
    this.id = id;
    }
    @OneToOne
    public ProjectStat getProjectStat() {
    return projectStat;
    }
    public void setProjectStat(ProjectStat projectStat) {
    this.projectStat = projectStat;
    }
    }
    第二个项目状态类:package com.alan;import javax.persistence.Entity;
    import javax.persistence.Id;
    import javax.persistence.OneToOne;@Entity
    public class ProjectStat {
    private Integer ids;
    private ProjectClass id;
    private String str;

    @Id
    public Integer getIds() {
    return ids;
    }
    public void setIds(Integer ids) {
    this.ids = ids;
    }
    @OneToOne
    public ProjectClass getId() {
    return id;
    }
    public void setId(ProjectClass id) {
    this.id = id;
    }
    public String getStr() {
    return str;
    }
    public void setStr(String str) {
    this.str = str;
    }
    }Hibernate配置文件:<?xml version='1.0' encoding='UTF-8'?>
    <!DOCTYPE hibernate-configuration PUBLIC
              "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
              "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><!-- Generated by MyEclipse Hibernate Tools.                   -->
    <hibernate-configuration>    <session-factory>
            <property name="dialect">org.hibernate.dialect.SybaseDialect</property>
            <property name="connection.url">jdbc:jtds:sqlserver://localhost:1433;DatabaseName=WebService</property>
            <property name="connection.username">sa</property>
            <property name="connection.password">qazwsx</property>
            <property name="connection.driver_class">net.sourceforge.jtds.jdbc.Driver</property>
            <property name="myeclipse.connection.profile">mssqlDriver</property>
         <!-- Echo all executed SQL to stdout -->
            <property name="show_sql">true</property>        <!-- Drop and re-create the database schema on startup -->
            <property name="hbm2ddl.auto">create</property>
            <property name="format_sql">true</property>
         <mapping class="com.alan.ProjectClass"/>
         <mapping class="com.alan.ProjectStat"/>
        </session-factory>
    </hibernate-configuration>测试类:package com.alan;import org.hibernate.cfg.AnnotationConfiguration;
    import org.hibernate.cfg.Configuration;
    import org.hibernate.tool.hbm2ddl.SchemaExport;public class Test {
    public static void main(String[] args) {
    Configuration configuration = new AnnotationConfiguration().configure();
    SchemaExport export = new SchemaExport(configuration);
    export.create(true, true);
    }
    } 下面是Hibernate自动发出的建表以及加约束的SQL语句:    alter table ProjectClass 
            drop constraint FK403DC9FF23E91ECA    alter table ProjectStat 
            drop constraint FK2B6438ED272B4227    drop table ProjectClass    drop table ProjectStat    create table ProjectClass (
            id int identity not null,
            projectStat_ids int null,
            primary key (id)
        )    create table ProjectStat (
            ids int not null,
            str varchar(255) null,
            id_id int null,
            primary key (ids)
        )    alter table ProjectClass 
            add constraint FK403DC9FF23E91ECA 
            foreign key (projectStat_ids) 
            references ProjectStat    alter table ProjectStat 
            add constraint FK2B6438ED272B4227 
            foreign key (id_id) 
            references ProjectClass不知道是不是你需要的?不管是不是你需要的都要记得要结贴噢!
      

  6.   

    项目、项目状态,这是一个明显的many-to-one关系,many-to-one是在one方配置关联关系,所以此例中是在项目状态类里面配置many-to-one,至于怎么配,楼上都有!而且,书上、网上都会有很多例子!
      

  7.   

    哈,刚刚没想到这一块,正解,一个项目确实有多个状态。嘿嘿!
    如果是这样的话,那LZ private BillStatusVO billstatusvo;这个就得改成List了,不知道对不对!