首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

OpenJPA (四)

2012-10-30 
OpenJPA (4)6 Query6.1 JPQL Queries6.1.1Query Basics??? 当查询结果不仅包含entity,而且包含value type

OpenJPA (4)

6 Query
6.1 JPQL Queries
6.1.1Query Basics

?

?? 当查询结果不仅包含entity,而且包含value type的时候,可以在SqlResultSetMapping中指定@ColumnResult,例如:

 虽然很俗,但是我还是要说, LZ辛苦了  // set the actual field in the instance            int set = OpenJPAStateManager.SET_USER;            switch (fmd.getDeclaredTypeCode()) {                case JavaTypes.BOOLEAN:                    sm.settingBooleanField(into, i, sm.fetchBooleanField(i),                        val == null ? false : ((Boolean) val).booleanValue(),                        set);                    break;                case JavaTypes.BYTE:                    sm.settingByteField(into, i, sm.fetchByteField(i),                        val == null ? 0 : ((Number) val).byteValue(), set);                    break;                case JavaTypes.CHAR:                    sm.settingCharField(into, i, sm.fetchCharField(i),                        val == null ? 0 : val.toString().charAt(0), set);                    break;                case JavaTypes.DOUBLE:                    sm.settingDoubleField(into, i, sm.fetchDoubleField(i),                        val == null ? 0 : ((Number) val).doubleValue(), set);                    break;                case JavaTypes.FLOAT:                    sm.settingFloatField(into, i, sm.fetchFloatField(i),                        val == null ? 0 : ((Number) val).floatValue(), set);                    break;                case JavaTypes.INT:                    sm.settingIntField(into, i, sm.fetchIntField(i),                        val == null ? 0 : ((Number) val).intValue(), set);                    break;                case JavaTypes.LONG:                    sm.settingLongField(into, i, sm.fetchLongField(i),                        val == null ? 0 : ((Number) val).longValue(), set);                    break;                case JavaTypes.SHORT:                    sm.settingShortField(into, i, sm.fetchShortField(i),                        val == null ? 0 : ((Number) val).shortValue(), set);                    break;                case JavaTypes.STRING:                    sm.settingStringField(into, i, sm.fetchStringField(i),                        val == null ? null : val.toString(), set);                    break;                case JavaTypes.DATE:                case JavaTypes.NUMBER:                case JavaTypes.BOOLEAN_OBJ:                case JavaTypes.BYTE_OBJ:                case JavaTypes.CHAR_OBJ:                case JavaTypes.DOUBLE_OBJ:                case JavaTypes.FLOAT_OBJ:                case JavaTypes.INT_OBJ:                case JavaTypes.LONG_OBJ:                case JavaTypes.SHORT_OBJ:                case JavaTypes.BIGDECIMAL:                case JavaTypes.BIGINTEGER:                case JavaTypes.LOCALE:                case JavaTypes.OBJECT:                case JavaTypes.OID:                    sm.settingObjectField(into, i, sm.fetchObjectField(i), val,                        set);                    break;                default:                    throw new UserException(_loc.get("only-update-primitives"));            }

热点排行