2009-06-06 5 views
1

NHibernate에서 작동하는 태그 클라우드 아키텍처를 얻으려고합니다.Nhibernate 태그 클라우드

public class Tag : Entity 
{ 
    public virtual int Id { get; set; } 
    public virtual string Text { get; set; } 
} 

이 테이블은 내 스키마의 일부 엔터티에 매핑되므로 각 연결의 태그 클래스에 컬렉션을 추가하고 싶지 않습니다.

그러나 태그 엔티티를 쿼리하고 모든 조인 된 테이블에서 개수 (*)를 반환하려고합니다. SQL에서는이 작업을 쉽게 처리 할 수 ​​있지만 아직 NH와는 빛을 보지 못하고 있습니다.

일부 HQL 작성을 시작했습니다.

select t.Text, count(t.Id) 
from Tag t join ???? 
where t.Id= :tagid 
    group by t.Text 

무엇에 가입합니까? 객체 모델에서 many-to-many 브리지 테이블은 클래스도 속성도 없으므로 이것이 작동하지 않는다는 것을 의미합니까?

무엇을 제안하겠습니까? 이 ID가 기준에서 수행 될 수 있는지 보려면 관심이 있어야합니다.

많은 감사,

이안

+0

궁금한 점 - 태그가 엔티티가되는 것이 맞습니까? 그것은 정말로 가치 객체가 아닌가? 아마도 정확히 같은 이름을 가진 두 개의 태그를 의미 할 수 있지만, 다른 ID는 의미가 없습니다. – UpTheCreek

답변

1

이것에 대해 기준을 사용하여 가진 시작으로, ... 나는 그것을 실행하지 않은 내가 조인을 수행하는 방법을 모르는 어떻게

IList multiResults = s.CreateMultiCriteria() 
    .Add(s.CreateCriteria(typeof(Tag)).SetProjection(Projections.RowCount())) 
    .List(); 
+2

SQL이 매우 간단 할 때 매우 실망 스럽습니다. 예를 들어, entity_tag 테이블에 의해 조인 된 태그와 엔티티가있는 경우를 예로들 수 있습니다. 내가 태그의 수에 필요한 모든 선택 t.Text이 잘 모르겠어요 t.text 에 의해 et.TagId = t.Id 그룹에 Entity_Tags 등 가입 태그 t에서 카운트 (*)입니다 뉴 햄프셔에서 너무 간결한 것을 얻을 수 있습니다. 저는 실제로 태그 모델 모델 클래스를 컬렉션으로 오염시키고 NH가 일하도록하고 싶지 않습니다. – madcapnmckay

관련 문제