我是 Hibernate 的新手,我下载了一个示例 Java 应用程序并将其修改为更有用,到目前为止,在我的应用程序中,我有两个在我的 Java 应用程序中定义的数据库类:Actor.java 和 City.java 他们每个都有.hbm.xml 文件如下所示:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated Jun 17, 2009 11:42:48 AM by Hibernate Tools 3.2.1.GA -->
<hibernate-mapping>
<class name="sakila.entity.Actor" table="actor" catalog="sakila">
<id name="actorId" type="java.lang.Short">
<column name="actor_id" />
<generator class="identity" />
</id>
<property name="firstName" type="string">
<column name="first_name" length="45" not-null="true" />
</property>
<property name="lastName" type="string">
<column name="last_name" length="45" not-null="true" />
</property>
<property name="lastUpdate" type="timestamp">
<column name="last_update" length="19" not-null="true" />
</property>
</class>
</hibernate-mapping>
<hibernate-mapping>
<class name="sakila.entity.City" table="city" catalog="sakila">
<id name="cityId" type="java.lang.Short">
<column name="city_id" />
<generator class="identity" />
</id>
<property name="city" type="string">
<column name="city" length="45" not-null="true" />
</property>
<property name="countryId" type="string">
<column name="country_Id" length="45" not-null="true" />
</property>
<property name="lastUpdate" type="timestamp">
<column name="last_update" length="19" not-null="true" />
</property>
</class>
</hibernate-mapping>
到目前为止,该应用程序运行良好。但我的问题是,如果我需要更改我的应用程序以便它可以处理数据库中的数百个对象,如 Actor 和 City,我是否需要定义所有映射文件?如果我在编程时不知道用户可能会查询哪些数据库对象,我是否需要定义所有这些对象,这似乎是不可能的,所以我的问题是:*.hbm.xml 文件是否必要?如果我需要编写一个应用程序,让用户查询他需要的任何对象,我什至可能不知道数据库中有什么,如何编写这样的应用程序?可以用休眠吗?