问题
How do I implement https://stackoverflow.com/a/16392399/14731 using QueryDSL SQL?
I understand that
new SQLSubQuery().from(customer).where(customer.email.eq("foo@example.com"))
models
select customer where customer.email = 'foo@example.com'
but I don't understand how to select [literal] such as:
select 1 from customer
or
select 'foo@example.com', 0
as required by the aforementioned link.
回答1:
If it is ok to use parameters then using constants should work
new SQLSubQuery().from(customer)
.where(customer.email.eq("foo@example.com"))
.list(Expressions.constant("foo@example.com"),
Expressions.constant(0))
Expressions.constant
is documented here http://www.querydsl.com/static/querydsl/3.2.3/apidocs/com/mysema/query/support/Expressions.html#constant%28T%29
来源:https://stackoverflow.com/questions/18691317/querydsl-how-to-select-literals-as-part-of-a-sqlsubquery