簡體   English   中英

休眠標准。 按別名選擇

[英]Hibernate criteria. Select by alias

我有桌子

@Entity
@Table(name="cash")
public class CashItem extends Item {
    @Id
    @Column(name = "id")
    @GeneratedValue(strategy = GenerationType.AUTO, generator = "cash_seq_gen")
    @SequenceGenerator(name = "cash_seq_gen", sequenceName = "cash_seq")
    private Long id;

    @Column(name="object_id")
    private Long objectId = 1l;

    @Column(name="object_type")
    private Long objectType = 1l;

和鏈接表

@Entity
@Table(name="cash_to_order")
@SuppressWarnings("serial")
public class CashToOrderItem extends Item {
    @Id
    @Column(name = "id")
    @GeneratedValue(strategy = GenerationType.AUTO, generator = "cash_to_order_seq_gen")
    @SequenceGenerator(name = "cash_to_order_seq_gen", sequenceName = "cash_to_order_seq")
    Long id;

    @ManyToOne
    @JoinColumn(name="order_id",referencedColumnName="id")
    private OrderItem order;

    @ManyToOne
    @JoinColumn(name="cash_id",referencedColumnName="id")
    private CashItem cash;

我從CashToOrderItem獲取條件,並想進行下一個查詢

criteria.createAlias("cash","c1");
criteria.add(Restrictions.eq("c1.objectType",ocf.getCounterparty()));
criteria.add(Restrictions.eq("с1.objectId",ocf.getSubCounterparty()));

但是發生了錯誤, 導致無法解析的屬性:如果我添加了兩個或更多限制, 則為CashToOrderItem的с1

如果您要在CashToOrder上創建條件,請聯系該類別的現金以獲取別名。 即CashToOrder.cash

Criteria criteria = session.createCriteria(CashToOrderItem.class, "cashToOrder");
criteria.createAlias("cashToOrder.cash","c1");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM