List<Object[]> result = fts
.createFullTextQuery(
mj.createQuery(),
BaseWallPost.class)
.setProjection(ProjectionConstants.ID, "post.id")
.list();
for(Object[] tuple : result){
Long postId = (Long) tuple[1];
}
@Entity
public abstract class BaseComment{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column
@Field(name="longCommentId",index=Index.YES,store=Store.YES,analyze=Analyze.NO)
@DocumentId
public Long id;
}
@Entity
public abstract class BasePost extends BaseComment{
@ManyToOne
@JoinColumn
@IndexedEmbedded(includePaths={"id","type","longCommentId"},indexNullAs=Field.DEFAULT_NULL_TOKEN,includeEmbeddedObjectId=true)
@ContainedIn public Post post;
}
@Entity
public class Post extends BasePost{
}
@Entity
public class Comment extends BaseComment{
@ManyToOne
@JoinColumn
@IndexedEmbedded(includePaths={"id","type","blocked","longCommentId"},indexNullAs=Field.DEFAULT_NULL_TOKEN,includeEmbeddedObjectId=true)
@ContainedIn
public BasePost post;
}