protected void processScalarHandling(DfCustomizeEntityInfo entityInfo, Table tbl) { final DfPmbMetaData pmbMetaData = entityInfo.getPmbMetaData(); // for check only if (pmbMetaData == null || !pmbMetaData.isTypedSelectPmb()) { // not pinpoint (but enough) final ExceptionMessageBuilder br = new ExceptionMessageBuilder(); br.addNotice("The 'scalar' option was not related to a typed parameter-bean."); br.addItem("Advice"); br.addElement("A 'scalar' option should be defined with a typed parameter-bean"); br.addElement("that is typed to things returning an scalar value."); br.addElement("For example:"); br.addElement(" (x): selectMemberName.sql"); br.addElement(" (o): MemberBhv_selectMemberName.sql"); br.addElement(" (x):"); br.addElement(" -- #df:entity#"); br.addElement(" -- +scalar+"); br.addElement(""); br.addElement(" select MEMBER_NAME from MEMBER"); br.addElement(" (o):"); br.addElement(" -- #df:entity#"); br.addElement(" -- +scalar+"); br.addElement(""); br.addElement(" -- !df:pmb!"); br.addElement(""); br.addElement(" select MEMBER_NAME from MEMBER"); br.addItem("SQL File"); br.addElement(entityInfo.getSqlFile()); final String msg = br.buildExceptionMessage(); throw new DfCustomizeEntityMarkInvalidException(msg); } final List<Column> columnList = tbl.getColumnList(); if (columnList.size() != 1) { final ExceptionMessageBuilder br = new ExceptionMessageBuilder(); br.addNotice("The 'scalar' option was related to non-only-one-column SQL."); br.addItem("Advice"); br.addElement("A 'scalar' option should be defined on only-one-column SQL."); br.addElement("For example:"); br.addElement(" (x):"); br.addElement(" -- #df:entity#"); br.addElement(" -- +scalar+"); br.addElement(" "); br.addElement(" -- !df:pmb!"); br.addElement(" "); br.addElement(" select MEMBER_NAME, BIRTHDATE from MEMBER"); br.addElement(" (o):"); br.addElement(" -- #df:entity#"); br.addElement(" -- +scalar+"); br.addElement(""); br.addElement(" -- !df:pmb!"); br.addElement(""); br.addElement(" select BIRTHDATE from MEMBER"); br.addItem("SQL File"); br.addElement(entityInfo.getSqlFile()); br.addItem("Selected Column"); if (!columnList.isEmpty()) { for (Column column : columnList) { br.addElement(column.getName()); } } else { br.addElement("(empty)"); } final String msg = br.buildExceptionMessage(); throw new DfCustomizeEntityMarkInvalidException(msg); } final Column column = columnList.get(0); entityInfo.setScalarJavaNative(column.getJavaNative()); entityInfo.setScalarColumnDisp(column.getColumnDefinitionLineDisp()); }