Bohužel jste neuvedli, jakou databázi používáte (SQL je pouze dotazovací jazyk....), ale pokud používáte SQL Server (produkt Microsoft RDBMS), můžete vytvořit vypočítaný sloupec typu VARCHAR(15) k uložení řetězcové reprezentace vašeho
INT
, a pak už jen hledejte...
ALTER TABLE dbo.YourTable
ADD IdAsString AS CAST(Id AS VARCHAR(15)) PERSISTED -- PERSISTED might not work - depending on your version of SQL Server
SELECT (list of columns)
FROM dbo.YourTable
WHERE IdAsString LIKE '123%'
Zda to opravdu dává obchodní smysl, je úplně jiný příběh..... (Souhlasím s Odedem a Mattem Ballem...)
Ale protože se nyní jedná o sloupec řetězce, měli byste mít možnost použít Restrictions.Like
přístup v NHibernate, jak uvádíte.