0
をスコープはuserId
によって作成され、Project
projectId
の一部であるされているすべてのBid
の要素を取得することであり、Verb.verb
のためにそのBid
に、Decision
が存在しているため文字列は"accepted"
です。さらに別のHibernateの基準が不明なエンティティサブクエリ:nullの例外
DetachedCriteria accepedBidIds = DetachedCriteria.forClass(DecisionOnBid.class, "dec")
.createAlias("dec.bid", "dec_bid")
.add(Restrictions.eq("verb.verb", "accepted"))
.setProjection(Projections.property("dec_bid.id"));
Criteria query = sessionFactory.getCurrentSession().createCriteria(Bid.class).createAlias("cbtion.project","proj");
query.add(Restrictions.and(
Restrictions.like("creator.id", userId),
Restrictions.like("proj.id", projectId),
Subqueries.eq("id", accepedBidIds)));
List<Bid> bids = (List<Bid>) query.list();
これらは私の実体である:クエリとサブクエリの次のペアとしてそれを実装しようとしたときに
しかし、私は
org.hibernate.HibernateException: Unknown entity: null
例外を取得しています。私は意図的に双方向の依存関係を避けています。
@Entity
@Table(name = "bids")
public class Bid {
@Id
@GeneratedValue(generator="increment")
@GenericGenerator(name="increment", strategy = "increment")
private int id;
@ManyToOne
private Cbtion cbtion = new Cbtion();
@ManyToOne
private User creator = new User();
...
}
@Entity
@Table(name = "cbtions")
public class Cbtion {
@Id
@GeneratedValue(generator="increment")
@GenericGenerator(name="increment", strategy = "increment")
private int id;
@ManyToOne
private Project project;
@ManyToOne
...
}
@Entity
@Table(name = "decisions_on_bids")
public class DecisionOnBid extends Decision {
@ManyToOne
private Verb verb;
@OneToOne
private Bid bid;
...
}
私はエイリアスのいくつかの組み合わせを試してきましたが、正しいものは得られません。なにか提案を?