Search in sources :

Example 41 with Pojo

use of org.nutz.dao.sql.Pojo in project nutz by nutzam.

the class DoInsertRelationLinkVisitor method visit.

public void visit(final Object obj, LinkField lnk) {
    // 只有多对多的映射才被考虑
    if (lnk instanceof ManyManyLinkField) {
        // 获取两边映射主键的值
        final ManyManyLinkField mm = (ManyManyLinkField) lnk;
        Object value = lnk.getValue(obj);
        final List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(Lang.length(value));
        Lang.each(value, new Each<Object>() {

            public void invoke(int i, Object ele, int length) throws ExitLoop, LoopException {
                list.add(new RelationObjectMap(mm, obj, ele));
            }
        });
        if (list.isEmpty())
            return;
        Entity<Map<String, Object>> en = holder.makeEntity(mm.getRelationName(), list.get(0));
        Pojo pojo = opt.maker().makeInsert(en);
        pojo.setOperatingObject(list);
        for (Object p : list) pojo.addParamsBy(p);
        opt.add(pojo);
    }
}
Also used : Pojo(org.nutz.dao.sql.Pojo) ArrayList(java.util.ArrayList) ManyManyLinkField(org.nutz.dao.impl.entity.field.ManyManyLinkField) RelationObjectMap(org.nutz.dao.util.RelationObjectMap) ExitLoop(org.nutz.lang.ExitLoop) LoopException(org.nutz.lang.LoopException) RelationObjectMap(org.nutz.dao.util.RelationObjectMap) Map(java.util.Map)

Example 42 with Pojo

use of org.nutz.dao.sql.Pojo in project nutz by nutzam.

the class DoUpdateRelationLinkVisitor method visit.

public void visit(Object obj, LinkField lnk) {
    if (lnk instanceof ManyManyLinkField) {
        ManyManyLinkField mm = (ManyManyLinkField) lnk;
        Entity<?> en = opt.makeEntity(mm.getRelationName(), map);
        Pojo pojo = opt.maker().makeUpdate(en, null);
        pojo.setOperatingObject(map);
        pojo.append(items);
        opt.add(pojo);
    }
}
Also used : Pojo(org.nutz.dao.sql.Pojo) ManyManyLinkField(org.nutz.dao.impl.entity.field.ManyManyLinkField)

Example 43 with Pojo

use of org.nutz.dao.sql.Pojo in project nutz by nutzam.

the class NutPojoMaker method makeFunc.

public Pojo makeFunc(String tableName, String funcName, String colName) {
    Pojo pojo = makePojo(SqlType.SELECT);
    pojo.append(Pojos.Items.wrapf("%s(%s) FROM %s", funcName, colName, tableName));
    return pojo;
}
Also used : Pojo(org.nutz.dao.sql.Pojo)

Example 44 with Pojo

use of org.nutz.dao.sql.Pojo in project nutz by nutzam.

the class NutPojoMaker method makeQuery.

public Pojo makeQuery(String tableName) {
    String[] ss = tableName.split(":");
    // String idFieldName = ss.length > 1 ? ss[1] : "*";//按id字段来统计,比较快
    Pojo pojo = makePojo(SqlType.SELECT);
    // pojo.append(Pojos.Items.wrap(idFieldName));//与org.nutz.dao.test.normal.QueryTest.query_records_pager()冲突
    pojo.append(Pojos.Items.wrap("*"));
    pojo.append(Pojos.Items.wrap("FROM"));
    pojo.append(Pojos.Items.wrap(ss[0]));
    return pojo;
}
Also used : Pojo(org.nutz.dao.sql.Pojo)

Example 45 with Pojo

use of org.nutz.dao.sql.Pojo in project nutz by nutzam.

the class NutPojoMaker method makeQuery.

public Pojo makeQuery(Entity<?> en) {
    Pojo pojo = Pojos.pojo(expert, en, SqlType.SELECT);
    pojo.setEntity(en);
    pojo.append(Pojos.Items.queryEntityFields());
    pojo.append(Pojos.Items.wrap("FROM"));
    pojo.append(Pojos.Items.entityViewName());
    return pojo;
}
Also used : Pojo(org.nutz.dao.sql.Pojo)

Aggregations

Pojo (org.nutz.dao.sql.Pojo)49 SqlFieldMacro (org.nutz.dao.impl.entity.macro.SqlFieldMacro)6 ExitLoop (org.nutz.lang.ExitLoop)5 LoopException (org.nutz.lang.LoopException)5 ManyManyLinkField (org.nutz.dao.impl.entity.field.ManyManyLinkField)4 ArrayList (java.util.ArrayList)3 Connection (java.sql.Connection)2 ResultSet (java.sql.ResultSet)2 SQLException (java.sql.SQLException)2 Statement (java.sql.Statement)2 Map (java.util.Map)2 DaoException (org.nutz.dao.DaoException)2 LinkField (org.nutz.dao.entity.LinkField)2 LinkVisitor (org.nutz.dao.entity.LinkVisitor)2 DoClearLinkVisitor (org.nutz.dao.impl.link.DoClearLinkVisitor)2 DoClearRelationByHostFieldLinkVisitor (org.nutz.dao.impl.link.DoClearRelationByHostFieldLinkVisitor)2 DoClearRelationByLinkedFieldLinkVisitor (org.nutz.dao.impl.link.DoClearRelationByLinkedFieldLinkVisitor)2 DoDeleteLinkVisitor (org.nutz.dao.impl.link.DoDeleteLinkVisitor)2 DoInsertLinkVisitor (org.nutz.dao.impl.link.DoInsertLinkVisitor)2 DoInsertRelationLinkVisitor (org.nutz.dao.impl.link.DoInsertRelationLinkVisitor)2