I'm trying to find a way to implement a function that would return an
instance of my custom table class (extending TableImpl) but containing a
derived table inside.
As a simplified example consider the following:
class MyTable extends TableImpl<Record> {
public MyTable() {
super("my_table");
}
MyTable(String alias, Table<Record> aliased) {
super(ailas, null, aliased);
}
public final TableField<Record, Integer> f1 = createField("f1",
SQLDataType.INTEGER);
public final TableField<Record, String> f2 = createField("f2",
SQLDataType.VARCHAR);
}
Suppose I now want to expose a "view" on this table - select * from
my_table where f1 > 5 and present it to my clients as an instance of
MyTable.
I tried to
Table<Record> derived =
DSL.select().from(myTable).where(f1.ge(5)).asTable();
and then
new MyTable("filtered", derived);
but this doesn't render correctly in the final SQL. What what I managed to
understand, asTable already produces an alias and then the constructor of
TableImpl wraps it in another alias which results in losing the SQL of the
derived table.
Is this supposed to work? Am I doing something I'm not supposed to do with
jOOQ? Is there another way to achieve this? I know I can do
derived.field("f1"), but this is untyped and not nice.
Thanks a lot!
--
You received this message because you are subscribed to the Google Groups "jOOQ
User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.