在hibernate中使用@Formula计算属性和继承的问题

时间:2013-03-28 12:05:21

标签: hibernate java-ee jpa annotations

嗨,我对Hibernate很陌生,所以我可能会做一些愚蠢的事情。

我有一个实体

@Entity
@Table(name="criterion")
@Inheritance(strategy = InheritanceType.JOINED)
public abstract class AbstractCriteria implements Criteria{

Criteria child;
List<Criteria> parents;

@Override
@OneToOne(targetEntity=AbstractCriteria.class, cascade={CascadeType.ALL})
@Fetch(FetchMode.SELECT)
@Lazy(true)
public Criteria getChild() {
    return _child;
}

我希望父母成为计算财产。一个条件只能有一个子节点(保存在数据库中,但它可以有多个父节点),我希望使用@Formula从数据库中获取。

我尝试在父字段定义上添加@Formula但似乎没有做任何事情。 当我为父母添加一个吸气剂时

@Formula("(select from betsy.criterion where child_id=id)")
@Override
public List<Criteria> getParents() {
    return _parent;
}

我得到了:

org.hibernate.PropertyNotFoundException: Could not find a setter for property parent in class
enter code here`com.bge.domain.data.criteria.RangeCriteria

RangeCriteria扩展了AbstractCriteria。

@Entity
@Table(name="Range_criterion")
@ForeignKey(name = "Range_criteria_id")
public class RangeCriteria extends AbstractCriteria {

  private double _fromRange;
  private double _toRange;
}

任何帮助将不胜感激。 感谢。

0 个答案:

没有答案