Hibernate-one to many

2017-10-25  本文已影响0人  一颗北上广的心
CREATE TABLE ANSWER
(
  ANSWER_ID       NUMBER(5)    NOT NULL,
  QUESTION_ID       NUMBER(5)    ,
  ANSWER            VARCHAR(20),
  CREATED_BY        VARCHAR2(20),
  CREATED_DATE      DATE  
)
CREATE TABLE QUESTION
(
  QUESTION_ID       NUMBER(5)    NOT NULL,
  QUESTION          VARCHAR2(20) ,
  CREATED_BY        VARCHAR2(20) ,
  CREATED_DATE      DATE  
)
<?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">
<hibernate-configuration>
    <session-factory name="">
        <property name="hibernate.connection.driver_class">oracle.jdbc.OracleDriver</property>
        <property name="hibernate.connection.password">*****</property>
        <property name="hibernate.connection.url">jdbc:oracle:thin:@DbServer:port:sid</property>
        <property name="hibernate.connection.username">***</property>
        <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
        
        <property name="show_sql">true</property>
        <property name="format_sql">true</property>
        
        <mapping resource="config/mapping/oneToManyConfig/Answer.hbm.xml" />
        <mapping resource="config/mapping/oneToManyConfig/Question.hbm.xml" />
    </session-factory>
</hibernate-configuration>
<?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 2013-10-22 15:28:34 by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
    <class name="pojo.oneToManyConfig.Answer" table="ANSWER">
        <id name="answerId" type="int">
            <column name="ANSWER_ID" precision="5" scale="0" />
            <generator class="assigned" />
        </id>
        <property name="answer" type="string">
            <column name="ANSWER" length="20" />
        </property>
        <property name="createdBy" type="string">
            <column name="CREATED_BY" length="20" />
        </property>
        <property name="createdDate" type="date">
            <column name="CREATED_DATE" length="7" />
        </property>
    </class>
</hibernate-mapping>
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="pojo.oneToManyConfig.Question" table="QUESTION">
        <id name="questionId" type="int">
            <column name="QUESTION_ID" precision="5" scale="0" />
            <generator class="assigned" />
        </id>
        <set name="answers" table="ANSWER" cascade="all">
            <key column="QUESTION_ID"></key> // the foreign key in table ANSWER
            <one-to-many class="pojo.oneToManyConfig.Answer" />
        </set>
        <property name="createdBy" type="string">
            <column name="CREATED_BY" length="20" />
        </property>
        <property name="createdDate" type="date">
            <column name="CREATED_DATE" length="7" />
        </property>
    </class>
</hibernate-mapping>
package pojo.oneToManyConfig;

import java.util.Date;

public class Answer {

    private int answerId;
    private String answer;
    private String createdBy;
    private Date createdDate;

    //getter and setter

}
package pojo.oneToManyConfig;

import java.util.Date;
import java.util.Set;

public class Question {

    private int questionId;
    private Set<Answer> answers;
    private String createdBy;
    private Date createdDate;
    //getter and setter
}

改成注解的版本:

<?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">
<hibernate-configuration>
    <session-factory name="">
        <property name="hibernate.connection.driver_class">oracle.jdbc.OracleDriver</property>
        <property name="hibernate.connection.password">*****</property>
        <property name="hibernate.connection.url">jdbc:oracle:thin:@DbServer:port:sid</property>
        <property name="hibernate.connection.username">***</property>
        <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
        
        <property name="show_sql">true</property>
        <property name="format_sql">true</property>
        
        <mapping class="pojo.oneToManyAnnotation.Answer" />
        <mapping class="pojo.oneToManyAnnotation.Question" />
    </session-factory>
</hibernate-configuration>
package pojo.oneToManyAnnotation;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="ANSWER")
public class Answer {

    @Id
    @Column(name="ANSWER_ID")
    private int answerId;
    @Column(name="ANSWER")
    private String answer;
    @Column(name="CREATED_BY")
    private String createdBy;
    @Column(name="CREATED_DATE")
    private Date createdDate;
    //getter and setter
 
}
package pojo.oneToManyAnnotation;

import java.util.Date;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.Table;

@Entity
@Table(name = "QUESTION")
public class Question {

    @Id
    @Column(name = "QUESTION_ID")
    private int questionId;

    @OneToMany(mappedBy = "", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
    @JoinColumn(name="QUESTION_ID")
    private Set<Answer> answers;

    @Column(name = "CREATED_BY")
    private String createdBy;
    @Column(name = "CREATED_DATE")
    private Date createdDate;

    //getter and setter

}

上一篇 下一篇

猜你喜欢

热点阅读