fix: Relation annotations join error

This commit is contained in:
开源海哥 2023-07-10 15:16:54 +08:00
parent d020fe26b4
commit 20f48eb23b
2 changed files with 37 additions and 34 deletions

View File

@ -67,16 +67,18 @@ class OneToMany<SelfEntity> extends AbstractRelation<SelfEntity> {
return queryWrapper;
}
@Override
public void join(List<SelfEntity> selfEntities, List<?> targetObjectList, BaseMapper<?> mapper) {
selfEntities.forEach(selfEntity -> {
Object selfValue = selfFieldWrapper.get(selfEntity);
if (selfValue != null) {
selfValue = selfValue.toString();
Class<?> wrapType = MapperUtil.getWrapType(relationFieldWrapper.getFieldType());
Collection<Object> collection = (Collection) ClassUtil.newInstance(wrapType);
for (Object targetObject : targetObjectList) {
Object targetValue = targetFieldWrapper.get(targetObject);
if (selfValue.equals(targetValue)) {
if (targetValue != null && selfValue.equals(targetValue.toString())) {
collection.add(targetObject);
}
}

View File

@ -53,9 +53,10 @@ class ToOneRelation<SelfEntity> extends AbstractRelation<SelfEntity> {
selfEntities.forEach(selfEntity -> {
Object selfValue = selfFieldWrapper.get(selfEntity);
if (selfValue != null) {
selfValue = selfValue.toString();
for (Object targetObject : targetObjectList) {
Object targetValue = targetFieldWrapper.get(targetObject);
if (selfValue.equals(targetValue)) {
if (targetValue != null && selfValue.equals(targetValue.toString())) {
relationFieldWrapper.set(targetObject, selfEntity);
break;
}