employee_project
次の列で既に作成されているデータベースで呼び出されたテーブルがありますEMPLOYEE_NUMBER,PROJECT_CODE,START_DATE,END_DATE,PROJECT_ROLE
。employee and project
私が使用した for の間には一対多の関係があります
private Set<EmployeeProject> employeeProjects = new HashSet<EmployeeProject>();
このコレクションのために Employee pojo クラスでは、一部の列が employee_project テーブルで拡張されています employeeProject_PROJECT_CODE,employeeProject_EMPLOYEE_NUMBER
。テーブルが既に作成されているため、列を拡張しないように休止状態を制限する方法はありますか? もう 1 つのプロジェクト テーブルには、という名前の複合 ID があります。もう 1 つEMPLOYEE_NUMBER.PROJECT_CODE
の質問は、なぜ hibernate がコレクション要素用に追加のテーブルを作成したり、既存のテーブルの列を拡張したりするのかということです。
従業員.hbm.xml
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.nousinfo.tutorial.model">
<class name="Employee" table="employee">
<meta attribute="class-description">
This class contains the employee detail
</meta>
<id name="employeeNumber" type="int" column="EMPLOYEE_NUMBER">
</id>
<property name="firstName" type="string" column="FIRST_NAME"></property>
<property name="lastName" type="string" column="LAST_NAME"></property>
<property name="title" type="string" column="TITLE"></property>
<property name="departmentId" type="string" column="DEPARTMENT_ID"></property>
<set name="employeeProjects" cascade="delete"
inverse="false">
<key column="EMPLOYEE_NUMBER" />
<one-to-many class="com.nousinfo.tutorial.model.EmployeeProject" />
</set>
<property name="address1" type="string" column="ADDRESS_1"></property>
</class>
</hibernate-mapping>
project.hbm.xml
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.nousinfo.tutorial.model">
<class name="EmployeeProject" table="employee_project">
<meta attribute="class-description">
This class contains the employee detail
</meta>
<composite-id>
<key-property name="employeeNumber" type="int"
column="EMPLOYEE_NUMBER"></key-property>
<key-property name="projectCode" type="string" column="PROJECT_CODE"></key-property>
</composite-id>
<property name="startDate" type="date" column="START_DATE"></property>
<property name="endDate" type="date" column="END_DATE"></property>
<property name="role" type="string" column="PROJECT_ROLE"></property>
<many-to-one name="employee" column="EMPLOYEE_NUMBER" class="com.nousinfo.tutorial.model.Employee" not-null="true" insert="false" update="false" ></many-to-one>
</class>
</hibernate-mapping