0

私のLevelTerm.hbm.xmlファイルは次のとおりです。

 <hibernate-mapping>
<class name="com.entity.LevelTerm" table="level_term" catalog="test">
    <id name="levelId" type="java.lang.Integer">
        <column name="level_id" />
        <generator class="identity" />
    </id>
    <property name="level" type="int">
        <column name="level" not-null="true" />
    </property>
    <property name="term" type="int">
        <column name="term" not-null="true" />
    </property>
    <property name="session" type="int">
        <column name="session" not-null="true" />
    </property>

    <list name="list_course">

        <key column="level_id"/>
        <one-to-many column="course_code" class="com.entity.Course"/>
         </list>
      </class>
</hibernate-mapping>

私のLevelTermクラスは次のとおりです。

@Entity
public class LevelTerm  implements java.io.Serializable {

 @Id
 @GeneratedValue(strategy= GenerationType.AUTO)
 private Integer levelId;
 private int level;
 private int term;
 private int session;

 @OneToMany
 private List<Course>list_course;



public List<Course> getList_course() {
    return list_course;
}

public void setList_course(List<Course> list_course) {
    this.list_course = list_course;
}

public List<Student> getList_student() {
    return list_student;
}

public void setList_student(List<Student> list_student) {
    this.list_student = list_student;
}

public LevelTerm() {
}

public LevelTerm(int level, int term, int session) {
   this.level = level;
   this.term = term;
   this.session = session;
}

public Integer getLevelId() {
    return this.levelId;
}

public void setLevelId(Integer levelId) {
    this.levelId = levelId;
}
public int getLevel() {
    return this.level;
}

public void setLevel(int level) {
    this.level = level;
}
public int getTerm() {
    return this.term;
}

public void setTerm(int term) {
    this.term = term;
}
public int getSession() {
    return this.session;
}

public void setSession(int session) {
    this.session = session;
}

}

hibernate.cfg.xml構成ファイルは次のとおりです。

<hibernate-configuration>
 <session-factory>
  <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
  <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
  <property name="hibernate.connection.url">jdbc:mysql://localhost/test</property>
  <property name="hibernate.connection.username">root</property>
  <property name="hibernate.current_session_context_class">thread </property>
  <property name="hibernate.hbm2ddl.auto">create</property>
  <mapping resource="com.entity/Student.hbm.xml"/>
  <mapping resource="com/entity/Address.hbm.xml"/>
  <mapping resource="com.entity/Course.hbm.xml"/>
  <mapping resource="com.entity/LevelTerm.hbm.xml"/>
 </session-factory>
</hibernate-configuration>

私のコードは、MySQL データベースに結合テーブル「LEVEL_TERM_LIST_COURSE」を作成することになっています。しかし、テーブルは作成されません。

4

1 に答える 1

0

いいえ、マッピングは結合テーブルを生成することは想定されていません。一方向の1対多の関連付けのように見え、many側の外部キーによって管理されます(例のコース)。この例と関連する説明を見てください。これは、関連付けを行うための事実上のSQL方法ですone-to-many

また、結合テーブルが必要な場合は、休止状態のドキュメントにあるこの例に似た操作が必要になる場合があります。基本的に、一方向の関連付けで結合テーブルが必要な場合は、属性が;に設定された要素をone-to-many使用します。これにより、関連付けが効果的に行われます。many-to-manyuniquetrueone-to-many

于 2013-08-30T17:04:07.980 に答える