Привет всем. Столкнулся с проблемой join-запроса такие у меня сущности
| Код | @Entity @org.hibernate.annotations.Entity(mutable = false, dynamicInsert = true, dynamicUpdate = true) @org.hibernate.annotations.AccessType("field") public class AgentStub implements Serializable, Cloneable { @Column(name = "FULLNAME") private String name;
@Id @Column(name = "ID") private Long id;
@Column(name = "PARENT") private Long parent;
@Column(name = "AGENTNO") private Long agentNo;
@Transient private String labelName;
@OneToMany @JoinColumn(name = "INSURANCEPOLICYID") private List<AgentPolicyStub> policies = new ArrayList<AgentPolicyStub>(); }
|
| Код | @Entity @org.hibernate.annotations.Entity(mutable = false, dynamicInsert = true, dynamicUpdate = true) @org.hibernate.annotations.AccessType("field") public class AgentPolicyStub implements PolicyPrototype { @Column(name = "POLICYNO") private String number;
@Id @Column(name = "ID") private Long id;
@Column(name = "STATE") private Long status;
@Column(name = "REDUCED") private Long reduced;
// @Transient @Column(name = "AGENTID") private Long agentId; }
|
ну и там гэтеры/сэтеры еще есть
вот такой непростой запросик на это дело
| Код | <sql-query name="agentStructure"> <!--<return class="com.cs.lisa.datadispatcher.entity.AgentStub"/>--> <return alias="s" class="com.cs.lisa.datadispatcher.entity.AgentStub"/> <return-join alias="p" property="s.policies"/>
SELECT {s.*}, a.agentid as {p.agentid}, p.id as {p.id}, p.policyno as {p.number}, p.insurancepolicystateid as {p.status}, p.isreduced as {p.reduced} FROM (SELECT t.agentid ID, t.providerid PARENT, t.agentno agentno, a.descriptor fullname FROM ( SELECT t.* FROM lisaagencystructure t WHERE t.agencynetworkid IN ( SELECT ID FROM lisaagencynetwork WHERE networkid IN (SELECT ID FROM lisaagencynetworklist WHERE saleproviderid = :brokerNo) AND followid IS NULL) ) t, lisaagents a WHERE a.ID = t.agentid CONNECT BY PRIOR t.agentid = t.providerid START WITH t.agentno = :agentNo) s, LISAINSURANCEPOLICY p, lisapolicyagent a WHERE a.agentid(+) = s.id and a.insurancepolicyid=p.id and p.validfrom <= TRUNC(SYSDATE) AND p.validtill > TRUNC(SYSDATE) and p.insurancepolicystateid not in (0, 6) order by s.id, p.id </sql-query>
|
вроде все как по доке но получаю exception "No column name found for property ... for alias [p]"
|