Один ко многим

one-to-many

Таблица "posts":

create table posts (
    id integer not null auto_increment,
    content longtext not null,
    primary key (id)
);

Таблица "comments":

create table comments (
    id integer not null auto_increment,
    content longtext not null,
    post_id integer not null,
    primary key (id)
);

one-to-many-uml

Файл "Post.java":

package de.inger;

import java.util.Set;

public class Post {

    private Integer id;   
    private String content;
    private Set<Comment> comments;

    public void setContent(String content) {
        this.content = content;
    }

    public String getContent() {
        return content;
    }

    public void setComments(Set<Comment> comments) {
        this.comments = comments;
    }

    public Set<Comment> getComments() {
        return comments;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getId() {
        return id;
    }
}

Файл "Comment.java":

package de.inger;

public class Comment {

    private Integer id; 
    private String content;
    private Post post;

    public void setContent(String content) {
        this.content = content;
    }

    public String getContent() {
        return content;
    }

    public void setPost(Post post) {
        this.post = post;
    }

    public Post getPost() {
        return post;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getId() {
        return id;
    }   
}

Файл "mapping.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">

<hibernate-mapping>
    <class name="de.inger.Post" table="posts">
        <id name="id" type="integer" column="id">
            <generator class="native" />
        </id>
        <property name="content" type="text" column="content" />
        <set name="comments" cascade="all">
            <key column="post_id" />
            <one-to-many class="de.inger.Comment" />
        </set>
    </class>
    <class name="de.inger.Comment" table="comments">
        <id name="id" type="integer" column="id">
            <generator class="native" />
        </id>
        <property name="content" type="text" column="content" />
        <many-to-one name="post" column="post_id" cascade="all" />
    </class>
</hibernate-mapping>

No TrackBacks

TrackBack URL: http://igor-inger.de/mt/mt-tb.cgi/3596

Leave a comment

About this Archive

Find recent content on the main index or look in the archives to find all content.