Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Hibernate: маппинг атрибута объекта


Автор: MaxPayneC 29.6.2009, 14:32
Извияюсь за не очень удачное название темы)
Суть проблемы такова: Есть класс, описывающий документ, содержит инфу о файле, хранящемся в базе - сам документ, майм-тип, id.

Код

package com.vc.graduates;

import java.sql.Blob;

/**
 * Created by IntelliJ IDEA.
 * User: maxpayne
 * Date: 29.06.2009
 * Time: 13:49:54
 * Класс, описывающий сущность "Документ".
 */
public class Document
{
    /**
     * ID документа.
     */
    private int id;
    /**
     * Описание документа.
     */
    private String description;
    /**
     * Содержимое документа.
     */
    private Blob content;
    /**
     * MIME-тип документа.
     */
    private String MimeType;

    public int getId()
    {
        return id;
    }

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

    public String getDescription()
    {
        return description;
    }

    public void setDescription(String description)
    {
        this.description = description;
    }

    public Blob getContent()
    {
        return content;
    }

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

    public String getMimeType()
    {
        return MimeType;
    }

    public void setMimeType(String mimeType)
    {
        MimeType = mimeType;
    }
}


Есть другая таблица, в которой есть поля, соответствующие блобу и майм-типу. Вопрос такой: Можно ли описать такой маппинг в хибернейт, чтобы у класса был атрибут Document?
Когда все документы вынесены в отдельную таблицу и связаны внешним ключом с основной, решение тривиально. А возможно ли сделать маппинг, когда данные лежат в той же таблице?

Автор: unreger 29.6.2009, 20:51
Да, можно (если я правильно понял).

Код

public class Document {

  private Document doc;
.....
  @ManyToOne
  @JoinColumn(name = "DOC_ID")
  public Document getDoc {
     return doc;
  }
....
}


Где на уровне таблиц DOC_ID ссылка на родительский документ.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)