【问题标题】:Hibernate reverse engineering, using in Spring MVC projectHibernate 逆向工程,在 Spring MVC 项目中使用
【发布时间】:2013-01-19 14:25:52
【问题描述】:

我刚刚使用 Hibernate 逆向工程对我的项目进行了逆向工程,我看到它创建了许多 POJO java 类和许多 *.hbm.xml 文件。

过去我的 java 代码是这样的:

@Entity
@Table(name = "enrollment")
public class Enrollment {

    @Id
    @Column(name = "enrollment_id")
    private Integer enrollment_id;

    @Column(name = "file_num")
    private String file_num;

    @Column(name = "eis_num")
    private String eis_num;

    @Column(name = "enrollment_type_id")
    private String enrollment_type_id;

    @Column(name = "ssn")
    private String ssn; 

    @Column(name = "first_name")
    private String first_name;

    @Column(name = "last_name")
    private String last_name;

    @Column(name = "middle_initial")
    private String middle_initial;

    @Column(name = "contact_id")
    private Integer contact_id;

    @Column(name = "retired_date")
    private String retired_date;

    @Column(name = "deferred_date")
    private String deferred_date;

    @Column(name = "school_id")
    private String school_id;

    @Column(name = "borough_id")
    private String borough_id;

    @Column(name = "profile_id")
    private String profile_id;

    @Column(name = "current_status")
    private String current_status;

    @Column(name = "last_update")
    private String last_update;

    @Column(name = "entry_date")
    private String entry_date;

    public void setProfile_id(String profile_id) {
        this.profile_id = profile_id;
    }   

    public Integer getEnrollment_id() {
        return enrollment_id;
    }

    public void setEnrollment_id(Integer enrollment_id) {
        this.enrollment_id = enrollment_id;
    }

    public String getFile_num() {
        return file_num;
    }

    public void setFile_num(String file_num) {
        this.file_num = file_num;
    }

    public String getEis_num() {
        return eis_num;
    }

    public void setEis_num(String eis_num) {
        this.eis_num = eis_num;
    }

    public String getEnrollment_type_id() {
        return enrollment_type_id;
    }

    public void setEnrollment_type_id(String enrollment_type_id) {
        this.enrollment_type_id = enrollment_type_id;
    }

    public String getSsn() {
        return ssn;
    }

    public void setSsn(String ssn) {
        this.ssn = ssn;
    }

    public String getFirst_name() {
        return first_name;
    }

    public void setFirst_name(String first_name) {
        this.first_name = first_name;
    }

    public String getLast_name() {
        return last_name;
    }

    public void setLast_name(String last_name) {
        this.last_name = last_name;
    }

    public String getMiddle_initial() {
        return middle_initial;
    }

    public void setMiddle_initial(String middle_initial) {
        this.middle_initial = middle_initial;
    }

    public Integer getContact_id() {
        return contact_id;
    }

    public void setContact_id(Integer contact_id) {
        this.contact_id = contact_id;
    }

    public String getRetired_date() {
        return retired_date;
    }

    public void setRetired_date(String retired_date) {
        this.retired_date = retired_date;
    }

    public String getDeferred_date() {
        return deferred_date;
    }

    public void setDeferred_date(String deferred_date) {
        this.deferred_date = deferred_date;
    }

    public String getSchool_id() {
        return school_id;
    }

    public void setSchool_id(String school_id) {
        this.school_id = school_id;
    }

    public String getBorough_id() {
        return borough_id;
    }

    public void setBorough_id(String borough_id) {
        this.borough_id = borough_id;
    }



    public String getCurrent_status() {
        return current_status;
    }

    public void setCurrent_status(String current_status) {
        this.current_status = current_status;
    }

    public String getLast_update() {
        return last_update;
    }

    public void setLast_update(String last_update) {
        this.last_update = last_update;
    }

    public String getEntry_date() {
        return entry_date;
    }

    @Override
    public String toString() {
        return "Enrollment [enrollment_id=" + enrollment_id + ", file_num="
                + file_num + ", eis_num=" + eis_num + ", enrollment_type_id="
                + enrollment_type_id + ", ssn=" + ssn + ", first_name="
                + first_name + ", last_name=" + last_name + ", middle_initial="
                + middle_initial + ", contact_id=" + contact_id
                + ", retired_date=" + retired_date + ", deferred_date="
                + deferred_date + ", school_id=" + school_id + ", borough_id="
                + borough_id + ", profile_id=" + profile_id
                + ", current_status=" + current_status + ", last_update="
                + last_update + ", entry_date=" + entry_date
                + ", getEnrollment_id()=" + getEnrollment_id()
                + ", getFile_num()=" + getFile_num() + ", getEis_num()="
                + getEis_num() + ", getEnrollment_type_id()="
                + getEnrollment_type_id() + ", getSsn()=" + getSsn()
                + ", getFirst_name()=" + getFirst_name() + ", getLast_name()="
                + getLast_name() + ", getMiddle_initial()="
                + getMiddle_initial() + ", getContact_id()=" + getContact_id()
                + ", getRetired_date()=" + getRetired_date()
                + ", getDeferred_date()=" + getDeferred_date()
                + ", getSchool_id()=" + getSchool_id() + ", getBorough_id()="
                + getBorough_id() + ", getCurrent_status()="
                + getCurrent_status() + ", getLast_update()="
                + getLast_update() + ", getEntry_date()=" + getEntry_date()
                + ", getClass()=" + getClass() + ", hashCode()=" + hashCode()
                + ", toString()=" + super.toString() + "]";
    }

    public void setEntry_date(String entry_date) {
        this.entry_date = entry_date;
    }


}

但是 Hibernate 逆向工程创建的代码没有任何 @Entity、@Table 或 @Column 标记,看起来所有映射都在 hbm.xml 中。如何在 Spring MVC 项目中使用它们

【问题讨论】:

    标签: java spring hibernate spring-mvc


    【解决方案1】:

    您可以使用 hbm.xml 文件,将其包含在 applicationContext 中并在项目中使用。唯一的区别是所有映射都将出现在 hbm 文件中。您在代码中将它们作为注释的位置。

    您的应用程序上下文应如下所示:

        <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
            <property name="dataSource" ref="myDataSource" />
            <property name="mappingResources">
                <list>
                              <!-- All your hbms --><value>yourHbmFile.hbm.xml</value>
    
                </list>
            </property>
    ..
    .
    </bean>
    

    另外,如果你想映射一个包含所有你可以使用的 hbm 的目录:

    <property name="mappingDirectoryLocations" value="classpath:org/../hibernate/model" /> 
    

    【讨论】:

    • 是的。但这就是我的意思.. 我有大约 200 个文件.. 我在哪里添加它们?
    • 您是否有一个应用程序 context.xml 文件,您可以在其中声明所有 bean?
    • 所以我要改变这个... org.uftwf.loadtester.model.Profileorg.uftwf。 loadtester.model.School
    • 如果hibernate逆向工程工具没有生成任何配置文件,您可以创建一个hibernate配置文件并将所有映射放在该文件中并将其链接到您的应用程序上下文。这是一个链接供您参考。 :stackoverflow.com/questions/10741841/…
    • 是的,要查找所有带注释的类,您可以进行组件扫描,它会扫描特定的包并自动映射所有 @Entity 的
    猜你喜欢
    • 2012-03-10
    • 2013-01-21
    • 2015-02-11
    • 2020-06-09
    • 1970-01-01
    • 2012-03-15
    • 1970-01-01
    • 2018-08-03
    • 2011-05-17
    相关资源
    最近更新 更多