有如下两个类,PersistInfo.java & PersistObject.java,代码如下:
public class PersistInfo {
private long id;
private Timestamp createTimestamp;
private Timestamp updateTimestamp;
}public class PersistObject {
private PersistInfo persistInfo;
}默认的构造函数以及get & set方法就不贴上去了,认为PersistInfo是PersistObject的一个组间,故打算把他们放在一张数据库表中保存,但是要求PersistInfo.id是这个表的主键。请问这种形式的组合关系需要如何写映射XML啊,或者用注解的形式也行。初学Hibernate,望大家多多帮忙。另外不知道大家有否听说过一种不存在外键关联的数据库设计?就是所有的关联查询均在程序里面实现,对象之间的关联不再数据表中体现,希望有了解的大侠指点一二。
public class PersistInfo {
private long id;
private Timestamp createTimestamp;
private Timestamp updateTimestamp;
}public class PersistObject {
private PersistInfo persistInfo;
}默认的构造函数以及get & set方法就不贴上去了,认为PersistInfo是PersistObject的一个组间,故打算把他们放在一张数据库表中保存,但是要求PersistInfo.id是这个表的主键。请问这种形式的组合关系需要如何写映射XML啊,或者用注解的形式也行。初学Hibernate,望大家多多帮忙。另外不知道大家有否听说过一种不存在外键关联的数据库设计?就是所有的关联查询均在程序里面实现,对象之间的关联不再数据表中体现,希望有了解的大侠指点一二。
只給表一個主鍵,其他的全在hibernate的配置文件中配置,查詢用QBC可以實現!!!!
@Embeddable
public class PersistInfo {
private long id;
private Timestamp createTimestamp;
private Timestamp updateTimestamp;
@Id
private long getId() {
return id;
}
}@Entity
public class PersistObject {
@Embedded
private PersistInfo persistInfo;
}
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping> <class name="events.Person" table="PERSON">
<id name="id" column="PERSON_ID">//这个是主键
<generator class="native"/>//定义类型为自增长
</id>
<set name="emailAddresses" table="PERSON_EMAIL_ADDR">
<key column="PERSON_ID"/>
<element type="string" column="EMAIL_ADDR"/>
</set>
<property name="age"/>
<property name="firstname"/>
<property name="lastname"/>
<set name="events" table="PERSON_EVENT">
<key column="PERSON_ID"/>
<many-to-many column="EVENT_ID" class="events.Event"/>
</set>
</class></hibernate-mapping>
虽然猜楼主应该会这个,但你的题目让写hibernate的映射文件,我就发了这个,希望对你有帮助