Format all type to full type name.
diff --git a/oal-parser/src/main/java/org/apache/skywalking/oal/tool/parser/SourceColumn.java b/oal-parser/src/main/java/org/apache/skywalking/oal/tool/parser/SourceColumn.java
index 604cbe0..2339ba1 100644
--- a/oal-parser/src/main/java/org/apache/skywalking/oal/tool/parser/SourceColumn.java
+++ b/oal-parser/src/main/java/org/apache/skywalking/oal/tool/parser/SourceColumn.java
@@ -38,7 +38,7 @@
         this.fieldName = fieldName;
         this.columnName = columnName;
         this.type = type;
-        this.typeName = type.getSimpleName();
+        this.typeName = type.getName();
         this.isID = isID;
 
         this.fieldGetter = ClassMethodUtil.toGetMethod(fieldName);
diff --git a/oal-parser/src/main/resources/code-templates/IndicatorImplementor.ftl b/oal-parser/src/main/resources/code-templates/IndicatorImplementor.ftl
index 3aa9747..0e2db23 100644
--- a/oal-parser/src/main/resources/code-templates/IndicatorImplementor.ftl
+++ b/oal-parser/src/main/resources/code-templates/IndicatorImplementor.ftl
@@ -56,7 +56,7 @@
         String splitJointId = String.valueOf(getTimeBucket());
 <#list fieldsFromSource as sourceField>
     <#if sourceField.isID()>
-        <#if sourceField.getTypeName() == "String">
+        <#if sourceField.getTypeName() == "java.lang.String">
         splitJointId += Const.ID_SPLIT + ${sourceField.fieldName};
         <#else>
         splitJointId += Const.ID_SPLIT + String.valueOf(${sourceField.fieldName});
@@ -70,7 +70,7 @@
         int result = 17;
 <#list fieldsFromSource as sourceField>
     <#if sourceField.isID()>
-        <#if sourceField.getTypeName() == "String">
+        <#if sourceField.getTypeName() == "java.lang.String">
         result = 31 * result + ${sourceField.fieldName}.hashCode();
         <#else>
         result += Const.ID_SPLIT + ${sourceField.fieldName};
@@ -86,7 +86,7 @@
         int result = 17;
 <#list fieldsFromSource as sourceField>
     <#if sourceField.isID()>
-        <#if sourceField.getTypeName() == "String">
+        <#if sourceField.getTypeName() == "java.lang.String">
         result = 31 * result + ${sourceField.fieldName}.hashCode();
         <#else>
         result += Const.ID_SPLIT + ${sourceField.fieldName};
@@ -229,8 +229,8 @@
     <#list fieldsFromSource as field>
         <#if field.typeName == "long" || field.typeName == "int" || field.typeName == "double" || field.typeName == "float">
             indicator.${field.fieldSetter}(((Number)dbMap.get("${field.columnName}")).${field.typeName}Value());
-        <#elseif field.typeName == "java.lang.String" || field.typeName == "String">
-            indicator.${field.fieldSetter}((${field.typeName})dbMap.get("${field.columnName}"));
+        <#elseif field.typeName == "java.lang.String">
+            indicator.${field.fieldSetter}((String)dbMap.get("${field.columnName}"));
         <#else>
             indicator.${field.fieldSetter}(new ${field.typeName}((String)dbMap.get("${field.columnName}")));
         </#if>
@@ -238,8 +238,8 @@
     <#list persistentFields as field>
         <#if field.typeName == "long" || field.typeName == "int" || field.typeName == "double" || field.typeName == "float">
             indicator.${field.fieldSetter}(((Number)dbMap.get("${field.columnName}")).${field.typeName}Value());
-        <#elseif field.typeName == "java.lang.String" || field.typeName == "String">
-            indicator.${field.fieldSetter}((${field.typeName})dbMap.get("${field.columnName}"));
+        <#elseif field.typeName == "java.lang.String">
+            indicator.${field.fieldSetter}((String)dbMap.get("${field.columnName}"));
         <#else>
             indicator.${field.fieldSetter}(new ${field.typeName}((String)dbMap.get("${field.columnName}")));
         </#if>
diff --git a/oal-parser/src/test/resources/expectedFiles/IndicatorImplementorExpected.java b/oal-parser/src/test/resources/expectedFiles/IndicatorImplementorExpected.java
index f01fe75..a7a4574 100644
--- a/oal-parser/src/test/resources/expectedFiles/IndicatorImplementorExpected.java
+++ b/oal-parser/src/test/resources/expectedFiles/IndicatorImplementorExpected.java
@@ -41,7 +41,7 @@
 @StorageEntity(name = "service_avg", builder = ServiceAvgIndicator.Builder.class)
 public class ServiceAvgIndicator extends LongAvgIndicator implements AlarmSupported {
 
-    @Setter @Getter @Column(columnName = "entity_id") @IDColumn private String entityId;
+    @Setter @Getter @Column(columnName = "entity_id") @IDColumn private java.lang.String entityId;
 
     @Override public String id() {
         String splitJointId = String.valueOf(getTimeBucket());
@@ -173,7 +173,7 @@
             indicator.setCount(((Number)dbMap.get("count")).intValue());
             indicator.setValue(((Number)dbMap.get("value")).longValue());
             indicator.setTimeBucket(((Number)dbMap.get("time_bucket")).longValue());
-            indicator.setStringField((java.lang.String)dbMap.get("string_field"));
+            indicator.setStringField((String)dbMap.get("string_field"));
             return indicator;
         }
     }