当前位置:编程学习 > JAVA >>

一个女生的求助,hibernate小问题。

我有个项目类: 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里面怎么配值。
我是在要查询项目信息的时候,把项目状态表的名字现实出来,现在只是主外键关联。 请高手帮我配置下,我自己弄错了。 很郁闷.....  
我叫月月姐,麻烦您了 谢谢 --------------------编程问答-------------------- 没人了吗? --------------------编程问答-------------------- 额  小妹  我不太懂hibernate  要是光用sql  ibatis 我倒是可以告诉你 (*^__^*) 嘻嘻…… --------------------编程问答-------------------- 在项目类中配置对象: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>

不知道你是不是想这样配???
--------------------编程问答--------------------
<many-to-one
                name="billstatusvo"
                column="项目表的项目状态属性"
                class="BillStatusVO"
                not-null="true"
                lazu="false"
           />
--------------------编程问答--------------------
引用楼主 likeliu1001 的回复:
我有个项目类: projrectvo  
有个项目状态类: billstatusvo

//项目类: ProjectVO
  private String billno;//项目编码
private String name;//项目名称
  private String billstatus;//项目状态
private BillStatusVO billstatusvo;

项……


LZ重复发帖了。。那边已经发给你了。。这边这会却又发现一个相同的帖子。。。 --------------------编程问答-------------------- 哦。。。对了,class是BillStatusVO 的全路径 --------------------编程问答-------------------- 这个应该用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



不知道是不是你需要的?不管是不是你需要的都要记得要结贴噢! --------------------编程问答-------------------- 楼上正解 --------------------编程问答-------------------- 项目、项目状态,这是一个明显的many-to-one关系,many-to-one是在one方配置关联关系,所以此例中是在项目状态类里面配置many-to-one,至于怎么配,楼上都有!而且,书上、网上都会有很多例子! --------------------编程问答--------------------
引用 9 楼 liutianxiong888 的回复:
项目、项目状态,这是一个明显的many-to-one关系,many-to-one是在one方配置关联关系,所以此例中是在项目状态类里面配置many-to-one,至于怎么配,楼上都有!而且,书上、网上都会有很多例子!

哈,刚刚没想到这一块,正解,一个项目确实有多个状态。嘿嘿!
如果是这样的话,那LZ private BillStatusVO billstatusvo;这个就得改成List了,不知道对不对!
补充:Java ,  Web 开发
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,