Как сохранить сущность из подкласса-несущества в Hibernate

я пытаюсь расширить сущность до несущественности, которая используется для заполнения полей суперкласса. Проблема в том, что когда я пытаюсь сохранить его, Hibernate выбрасывает MappingException. Это происходит потому, что даже если я кастую ReportParser to Report, экземпляр ReportParser все равно является экземпляром ReportParser, поэтому Hibernate жалуется, что это неизвестная сущность.

@Entity
@Table(name = "TB_Reports")
public class Report
{
   Long id;
   String name;
   String value;

   @Id
   @GeneratedValue
   @Column(name = "cReportID")
   public Long getId()
   {
      return this.id;
   }

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

   @Column(name = "cCompanyName")
   public String getname()
   {
      return this.name;
   }

   public void setName(String name)
   {
      this.name = name;
   }

   @Column(name = "cCompanyValue")
   public String getValue()
   {
      return this.name;
   }

   public void setValue(String value)
   {
      this.value = value;
   }
}

ReportParser используется только для заполнения полей.

public class ReportParser extends report
{
   public void setName(String htmlstring)
   {
      ...
   }

   public void setValue(String htmlstring)
   {
      ...
   }
}

Попытайтесь преобразовать его в Report и сохранить

...
ReportParser rp = new ReportParser();
rp.setName(unparsed_string);
rp.setValue(unparsed_string);
Report r = (Report)rp;
this.dao.saveReport(r);

Я использовал этот шаблон до того, как перешел в ORM, но не могу понять, как это сделать с Hibernate. Это возможно?

7
задан vopilif 19 September 2011 в 07:34
поделиться