@@ -793,55 +793,56 @@ private void buildInnerResultMap(final StringBuilder builder, final MybatisPersi
793
793
PreferredConstructor <?, MybatisPersistentProperty > persistenceConstructor = persistentEntity .getPersistenceConstructor ();
794
794
if (null != persistenceConstructor && persistenceConstructor .hasParameters ()) {
795
795
constructorBuilder .append ("<constructor>" );
796
- }
797
-
798
-
799
- persistentEntity .doWithProperties (new SimplePropertyHandler () {
800
- @ Override
801
- public void doWithPersistentProperty (PersistentProperty <?> pp ) {
802
- MybatisPersistentProperty property = (MybatisPersistentProperty ) pp ;
803
796
804
- if (persistentEntity .isConstructorArgument (property )) {
797
+ for (PreferredConstructor .Parameter <Object , MybatisPersistentProperty > parameter : persistenceConstructor .getParameters ()) {
798
+ MybatisPersistentProperty property = persistentEntity .getPersistentProperty (parameter .getName ());
799
+ if (null != property ) {
805
800
if (property .isIdProperty ()) {
806
-
807
801
if (property .isCompositeId ()) {
808
-
809
802
MybatisPersistentEntityImpl <?> idEntity = context .getPersistentEntity (property .getActualType ());
810
803
if (null != idEntity ) {
811
804
idEntity .doWithProperties (new SimplePropertyHandler () {
812
805
@ Override
813
806
public void doWithPersistentProperty (PersistentProperty <?> pp ) {
814
807
MybatisPersistentProperty property = (MybatisPersistentProperty ) pp ;
815
- builder .append (String .format ("<idArg property=\" %s\" column=\" %s\" javaType=\" %s\" jdbcType=\" %s\" />" ,
816
- property .getName () + "." + property .getName (),
808
+ constructorBuilder .append (String .format ("<idArg column=\" %s\" javaType=\" %s\" jdbcType=\" %s\" />" ,
817
809
alias (prefix + property .getName ()),
818
810
property .getActualType ().getName (),
819
811
property .getJdbcType ()
820
812
));
821
813
}
822
814
});
823
815
}
824
-
825
816
} else {
826
- builder .append (String .format ("<idArg property=\" %s\" column=\" %s\" javaType=\" %s\" jdbcType=\" %s\" />" ,
827
- property .getName (),
817
+ constructorBuilder .append (String .format ("<idArg column=\" %s\" javaType=\" %s\" jdbcType=\" %s\" />" ,
828
818
alias (prefix + property .getName ()),
829
819
property .getActualType ().getName (),
830
820
property .getJdbcType ()
831
821
));
832
822
}
833
-
834
-
835
823
} else {
836
- constructorBuilder .append (String .format ("<arg property=\" %s\" column=\" %s\" javaType=\" %s\" jdbcType=\" %s\" "
837
- + (null != property .getSpecifiedTypeHandler () ? (" typeHandler=\" " + property .getSpecifiedTypeHandler ().getName () + "\" " ) : "" )
838
- + " />" ,
839
- property .getName (),
824
+ constructorBuilder .append (String .format ("<arg column=\" %s\" javaType=\" %s\" jdbcType=\" %s\" />" ,
840
825
alias (prefix + property .getName ()),
841
826
property .getActualType ().getName (),
842
827
property .getJdbcType ()
843
828
));
844
829
}
830
+ }else {
831
+
832
+
833
+ }
834
+ }
835
+
836
+
837
+ constructorBuilder .append ("</constructor>" );
838
+ }
839
+
840
+
841
+ persistentEntity .doWithProperties (new SimplePropertyHandler () {
842
+ @ Override
843
+ public void doWithPersistentProperty (PersistentProperty <?> pp ) {
844
+ MybatisPersistentProperty property = (MybatisPersistentProperty ) pp ;
845
+ if (persistentEntity .isConstructorArgument (property )) {
845
846
return ;
846
847
}
847
848
@@ -862,9 +863,6 @@ public void doWithPersistentProperty(PersistentProperty<?> pp) {
862
863
});
863
864
864
865
865
- if (null != persistenceConstructor && persistenceConstructor .hasParameters ()) {
866
- constructorBuilder .append ("</constructor>" );
867
- }
868
866
builder .append (constructorBuilder ).append (resultBuilder );
869
867
}
870
868
0 commit comments