У меня возникли проблемы с NHibernate, когда дело доходит до сопоставления многих-многих отношений, особенно этого.Многие для многих NHibernate
У меня есть таблица категории, в которой каждый родитель может иметь столько детей, сколько ему нужно, и может быть также родителем.
Когда я пытаюсь выбрать что-то из категории таблицы, я получаю сообщение об ошибке:
ОШИБКА: 42601: ошибка синтаксиса в или рядом с «»
Любой шанс, что вы можете понять, почему это ошибка?
Большое спасибо ребята
Heres избранных
System.Collections.IList resultado2 = sessao.Find("select c.IdCategoria,c.NomeCategoria,c.CategoriasFilhas from Categoria c");
Херес стол
CREATE TABLE category
(
id_cat serial not null,
id_cat_p integer not null,
nm_cat string (256) not null,
...
);
мой C# класс
public class Categoria
{
private int idCategoria;
private string nmCategoria;
private int nivelCategoria;
private int rankCategoria;
private IList<Categoria> categoriasFilhas;
public virtual int IdCategoria
{
get { return this.idCategoria; }
set { this.idCategoria = value; }
}
public virtual string NomeCategoria
{
get { return this.nmCategoria; }
set { this.nmCategoria = value; }
}
public virtual int NivelCategoria
{
get { return this.nivelCategoria; }
set { this.nivelCategoria = value; }
}
public virtual int RankCategoria
{
get { return this.rankCategoria; }
set { this.rankCategoria = value; }
}
public virtual IList<Categoria> CategoriasFilhas
{
get { return this.categoriasFilhas; }
private set { this.categoriasFilhas = value; }
}
}
А вот отображение
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="GeoBiblio" namespace="GeoBiblio.Classes.Orm">
<class name="Categoria" table="categoria" discriminator-value="categoria">
<id name="IdCategoria" type="Int32" column="id_categoria" unsaved-value="0" access="property">
<generator class="sequence">
<param name="sequence">categoria_id_categoria_seq</param>
</generator>
</id>
<property name="NomeCategoria" column="nm_categoria" type="String" unique="true"/>
<property name="NivelCategoria" column="nivel_categoria" type="Int32"/>
<property name="RankCategoria" column="rank_categoria" type="Int32"/>
<bag name="CategoriasFilhas" table="categoria" fetch="select" inverse="true" lazy="true">
<key column="id_categoria_pai"/>
<many-to-many class="Categoria" column="id_categoria" order-by="rank_categoria"/>
</bag>
</class>
</hibernate-mapping>
я постараюсь лет смотреть дальше в HQL. Я все еще новичок в Hibernate: D Thanks –
Теперь он работает. Спасибо. Вот следующий запрос, который я искал: «от Categoria c где c.IdCategoria = 1» таким образом выбрав только родителя и его дочерние элементы. Другой запрос дал мне список всех узлов и дочерних элементов, повторяя кучу информации. –
Я рад, что это сработало – Burt