Hi,
i've a problem
i want write a property element Chemin with a formula
Code:
<class
name="Niveau, Core"
table="NIVEAU"
<id name="Id" type="Int64" unsaved-value="null">
<column name="ID" sql-type="BIGINT"/>
<generator class="assigned">
</generator>
</id>
<many-to-one name="NiveauParent" class="Niveau, Core" outer-join="auto" cascade="none" foreign-key="NIVEAU_NIVEAU_PARENT_FKC">
<column name="NIVEAU_PARENT_FK" not-null="false" sql-type="BIGINT"/>
</many-to-one>
<property name="Chemin" type="String" formula="??????" />
</class>
For example :
niveau1.NiveauParent= null
niveau1.ID = 0
niveau2.NiveauParent= niveau1
niveau2.ID= 1
niveau3.NiveauParent= niveau2
niveau3.ID = 1
I wish :
niveau1.Chemin = "0"
niveau2.Chemin = "0-1"
niveau3.Chemin = "0-1-2"
I try use annotation
<property name="Chemin" type="String" formula="(case when (NIVEAU_PARENT_FK IS null) then
ID
else
(select ID + '-' + __niveau.CHEMIN from NIVEAU as __niveau where __niveau.id=NIVEAU_PARENT_FK)
end)" />
but It dosn't work
Remarks : max deep = 3
How should do this ?
Thanks for helping