Ответы пользователя по тегу Hibernate
  • Как составить Full-Text HQL-запрос, содержащий SQL contains?

    lari4
    @lari4 Автор вопроса
    ECM Solutions Specialist
    Проблема решилась так.

    Создаем SQL-функцию:
    USE [dbName]
    GO
    /****** Object:  UserDefinedFunction [dbo].[funcFullText]    Script Date: 11/27/2014 1:12:11 PM ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    -- =============================================
    -- Author:      <Author,,Name>
    -- Create date: <Create Date, ,>
    -- Description: <Description, ,>
    -- =============================================
    ALTER FUNCTION [dbo].[funcFullText] 
    (
         -- Add the parameters for the function here
         @query varchar (250),  @ID varchar (45)
    )
    RETURNS BIT
    AS
    BEGIN
         -- Declare the return variable here
         DECLARE @Result BIT
         DECLARE @SQL INT
         select @SQL = count(*) from test_docs where Contains(xxtext,@query) and SYSROWID = @ID
         IF @SQL > 0 SET @Result = 1    ELSE SET @Result = 0
         -- Return the result of the function
         RETURN @Result
    END

    Внутри функции отрабатывает SQL-запрос, содержащий Contains.

    Далее формируем HQL-запрос и вызываем метод веб-сервиса:
    hql = " from test_docs where dbo.funcFullText('" + txtSqlQuery.Text + "',SYSROWID) = true";
    saWsPropertyValueArray[] result = archiveService.search(token, hql);
    Ответ написан
    Комментировать