一个女生的求助,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"
/>
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,至于怎么配,楼上都有!而且,书上、网上都会有很多例子! --------------------编程问答--------------------
哈,刚刚没想到这一块,正解,一个项目确实有多个状态。嘿嘿!
如果是这样的话,那LZ private BillStatusVO billstatusvo;这个就得改成List了,不知道对不对!
补充:Java , Web 开发