[ 
https://issues.apache.org/jira/browse/METAMODEL-146?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

xialvjun closed METAMODEL-146.
------------------------------
    Resolution: Duplicate

> API, Maven CodeGenerator
> ------------------------
>
>                 Key: METAMODEL-146
>                 URL: https://issues.apache.org/jira/browse/METAMODEL-146
>             Project: Apache MetaModel
>          Issue Type: Wish
>    Affects Versions: 4.4.0
>            Reporter: xialvjun
>
> I sended an email to [email protected] last night.  But now I found 
> jira site of metamodel, so paste the email here.
> I've searched http://wiki.apache.org/metamodel/ with keyword "subquery", but 
> there is no result.
> I used to think if org.apache.metamodel.query.Query implements 
> org.apache.metamodel.schema.Table  so I can do it like 
> dataContext.query().from(query), but it doesn't. 
> So I ask you how to do SubQuery in MetaModel.
> In fact, I think the api of MetaModel can do a big change, like this:
> {code}
> TableLike = dataContext.query().from(TableLike... tables)
> TableLike = dataContext.query().from(TableLike... 
> tables).select(ColumnLike... columns)
> Filter = ColumnLike.operator(value)
> dataContext.query().from(TableLike... tables).select(ColumnLike... 
> columns).where(Filter... filters).groupBy(ColumnLike... columns)
> DataSet ds = TableLike.execute();
> {code}
> There are 3 main interfaces: TableLike , ColumnLike , Filter.
> query, table, view are all TableLike;
> column in a query, column in a table are all ColumnLike;
> filter is generated by ColumnLike...
> And if the Column Type can be represent by the class of Column, things may be 
> better.
> Maybe we can't make Column a generic class like Column<Integer>, because we 
> can't use it like Column<Person>(wait, wait, wait, maybe we can if Person is 
> just a java bean.... WOW, so it seems that TableLike is in fact a subclass of 
> ColumnLike, ehh, it's a little complex, leave it).... So we can have some 
> simple column class like IntegerColumn, StringColumn, DateColumn.....
> By the way, I think a code generator maven plugin is needed.  I usually 
> manually create a DB class which has static members of all the Tables and 
> Columns, then I can use them without string literals to represent table or 
> column which has a using expirence like jooq or empire-db. I believe a maven 
> code generation plugin will do better. It can also create pojo class from 
> database schema using underline naming method to camel naming method... So 
> when we get a Dataset dataSet object, we can just like 
> dataSet.extract(List<Person>.class) to get the data.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to