【发布时间】:2017-03-29 13:34:48
【问题描述】:
我有一张桌子的模型
@Entity(name="gpl_bd_stage")
public class GplBdStage implements Serializable {
/** Primary key. */
protected static final String PK = "stageId";
/**
* The optimistic lock. Available via standard bean get/set operations.
*/
@Column(name="created_on")
private Timestamp createdOn;
@Column(nullable=false, length=250)
private String stage;
@Column(name="updated_on")
private Timestamp updatedOn;
@Column(name="record_display_order", precision=2)
private BigDecimal recordDisplayOrder;
@Column(name="escalation_1_timeline", precision=131089)
private BigDecimal escalation1Timeline;
@Column(name="escalation_2_timeline", precision=131089)
private BigDecimal escalation2Timeline;
@Column(name="escalation_3_timeline", precision=131089)
private BigDecimal escalation3Timeline;
@Id @Column(name="stage_id", unique=true, nullable=false, precision=10)
private int stageId;
@Column(name="tat_days", precision=131089)
private BigDecimal tatDays;
@Column(name="is_active", length=1)
private boolean isActive;
@OneToMany(mappedBy="gplBdStage")
private Set<GplBdBusinessDeal> gplBdBusinessDeal;
@OneToMany(mappedBy="gplBdStage")
private Set<GplBdDealEscalation> gplBdDealEscalation;
@OneToMany(mappedBy="gplBdStage")
private Set<GplBdEscalationRule> gplBdEscalationRule;
@ManyToOne @JoinColumn(name="created_by")
private GplBdUser gplBdUser;
@OneToMany(mappedBy="gplBdStage3")
private Set<GplBdStage> gplBdStage4;
@ManyToOne @JoinColumn(name="parent_stage")
private GplBdStage gplBdStage3;
@ManyToOne @JoinColumn(name="updated_by")
private GplBdUser gplBdUser2;
@OneToMany(mappedBy="gplBdStage")
private Set<GplBdTag> gplBdTag;
当我尝试使用以下查询从表中获取特定列时:
Criteria cr = session.createCriteria(GplBdStage.class,"e")
.setProjection(Projections.projectionList()
.add(Projections.property("gplBdStage3"),"gplBdStage3")
.add(Projections.property("stageId"),"stageId")
.add(Projections.property("stage"),"stage"))
.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
List<GplBdStage> result = cr.list();
它给出了无限递归和无限结果
我想要这样的东西
[{"stage":"First Contract","gplBdStage3":{"stage":"First Contract","stageId":1},"stageId":1}]
我用的是spring boot休眠
【问题讨论】:
标签: java spring hibernate projection