Mybatis Plus 兼容问题
yhan219 opened this issue · comments
Bug 描述
更新idea后报错不能使用
Version
- Doc View: v1.1.13
IntelliJ IDEA 2021.2.3 (Ultimate Edition)
内部版本号 #IU-212.5457.46,October 12, 2021 构建
Licensed to IntelliJ IDEA Evaluator
到期日期: November 18, 2021
运行时版本: 11.0.12+7-b1504.40 x86_64
VM: OpenJDK 64-Bit Server VM,JetBrains s.r.o.
macOS 11.6
GC: G1 Young Generation, G1 Old Generation
Memory: 4096M
Cores: 12
Registry: ide.balloon.shadow.size=0
Bug 详情
异常日志、可能导致的原因、参数信息等
java.lang.ClassCastException: class com.intellij.psi.PsiWildcardType cannot be cast to class com.intellij.psi.PsiClassType (com.intellij.psi.PsiWildcardType and com.intellij.psi.PsiClassType are in unnamed module of loader com.intellij.ide.plugins.cl.PluginClassLoader @23a37d6a)
at com.liuzhihang.doc.view.utils.ParamPsiUtils.getFieldsAndDefaultValue(ParamPsiUtils.java:359)
at com.liuzhihang.doc.view.utils.ParamPsiUtils.getFieldsAndDefaultValue(ParamPsiUtils.java:359)
at com.liuzhihang.doc.view.utils.ParamPsiUtils.getFieldsAndDefaultValue(ParamPsiUtils.java:359)
at com.liuzhihang.doc.view.utils.ParamPsiUtils.getFieldsAndDefaultValue(ParamPsiUtils.java:359)
at com.liuzhihang.doc.view.utils.ParamPsiUtils.getFieldsAndDefaultValue(ParamPsiUtils.java:359)
at com.liuzhihang.doc.view.utils.ParamPsiUtils.getFieldsAndDefaultValue(ParamPsiUtils.java:395)
at com.liuzhihang.doc.view.utils.SpringPsiUtils.getReqBodyJson(SpringPsiUtils.java:251)
at com.liuzhihang.doc.view.service.impl.SpringDocViewServiceImpl.buildClassMethodDoc(SpringDocViewServiceImpl.java:81)
at com.liuzhihang.doc.view.service.DocViewService.buildDoc(DocViewService.java:57)
at com.liuzhihang.doc.view.action.PreviewAction.actionPerformed(PreviewAction.java:70)
at com.intellij.openapi.actionSystem.ex.ActionUtil.lambda$performActionDumbAwareWithCallbacks$4(ActionUtil.java:240)
at com.intellij.openapi.actionSystem.ex.ActionUtil.performDumbAwareWithCallbacks(ActionUtil.java:261)
at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAwareWithCallbacks(ActionUtil.java:240)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.lambda$actionPerformed$0(ActionMenuItem.java:248)
at com.intellij.openapi.wm.impl.FocusManagerImpl.runOnOwnContext(FocusManagerImpl.java:236)
at com.intellij.openapi.wm.impl.IdeFocusManagerImpl.runOnOwnContext(IdeFocusManagerImpl.java:67)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.actionPerformed(ActionMenuItem.java:240)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem.lambda$fireActionPerformed$0(ActionMenuItem.java:90)
at com.intellij.openapi.application.TransactionGuardImpl.performUserActivity(TransactionGuardImpl.java:94)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem.fireActionPerformed(ActionMenuItem.java:90)
at com.intellij.ui.plaf.beg.BegMenuItemUI.doClick(BegMenuItemUI.java:515)
at com.intellij.ui.plaf.beg.BegMenuItemUI$MyMouseInputHandler.mouseReleased(BegMenuItemUI.java:545)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6652)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3345)
at java.desktop/java.awt.Component.processEvent(Component.java:6417)
at java.desktop/java.awt.Container.processEvent(Container.java:2263)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5027)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4859)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4547)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2784)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4859)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:778)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:751)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:749)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:748)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:885)
at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.java:814)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:751)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:441)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:825)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:440)
at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:794)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:492)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
我发现应该是入参或者返回参数对象是继承了mybatis plus 的com.baomidou.mybatisplus.extension.activerecord.Model
类的都不行,比如
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* <p>
* 地区
* </p>
*
* @author yhan219
* @since 2021-10-09
*/
@Getter
@Setter
@Accessors(chain = true)
public class Area extends Model<Area> {
private static final long serialVersionUID = 1L;
/**
* 地区编号
*/
private String id;
/**
* 名称
*/
private String areaName;
}
- 入参是对象,没有
@RequestBody
,可以打开插件
@GetMapping("/test")
public Long test(Area area) {
return null;
}
- 如参数对象,有@requestbody,不能打开插件
@GetMapping("/test")
public Long test(@RequestBody Area area) {
return null;
}
- 返回Area不能打开插件
@GetMapping("/test")
public Area test() {
return null;
}
把Area类的extends Model<Area>
去掉,所有情况都能打开插件。
mybatis plus 版本
implementation 'com.baomidou:mybatis-plus-boot-starter:3.4.3.4'
这个问题我后面看一下,可能得过几天
跟mp的版本有关系,我试了下低版本的没问题
我已经修复这个问题了。后面会和新版本一起发布
https://github.com/liuzhihang/doc-view/releases/tag/v1.2.0
新版本,也可以等待后续推送更新
现在还有一个问题是返回参数是mybatis plus Page参数时不会生成返回示例。Page这样的没有生成返回示例,List这样的会生成返回示例
好的,我这个得晚些时候看了。最近一段时间比较忙。