使用QueryDSL在join子句上指定别名

时间:2015-02-05 12:52:51

标签: java sql querydsl

使用QueryDSL我会创建如下的查询:

select * from cats as C join owners as O on ...

出于可读性的原因,我会使用别名" O"在join子句中,但DSL似乎不支持这个:

query.from(cats.as("C")).join(owners.as("O")).on(...)

owners.as("O")的类型与join子句所期望的类型不兼容。

你有什么想法吗?

2 个答案:

答案 0 :(得分:6)

好的,您可以使用别名创建它,而不是使用表的自动生成的静态实例:

Cat cat = new Cat("C");
Owner owner = new Owner("O");
query.from(cats).join(owners).on(...)

答案 1 :(得分:0)

您可以在Querydsl中使用Alias,如

import { Injectable } from '@angular/core';
import { Product } from './product';

@Injectable()

export class ProductService {

private products: Product[] = [
new Product('10', 'schezwan rice', 'with schezwan sauce tasty',  'http://www.foodinnrestaurant.com/images/stories/virtuemart/product/prodt_328.jpg'),

Product('11', 'Summer salad', 'looks tasty and healthy', 'http://images.media- allrecipes.com/userphotos/250x250/00/39/70/397065.jpg')
];

constructor() { }

getProducts() {
return this.products;
}

}

Querydsl Alias usage