gpt4 book ai didi

java - 如何在 MAT Eclipse 中使用 OQL 进行嵌入式查询

转载 作者:行者123 更新时间:2023-11-30 07:24:17 34 4
gpt4 key购买 nike

我可以使用如下查询获取所有 Thread 对象

SELECT OBJECTS dominators(s) FROM java.lang.Thread s

那么如果我想对返回的结果对象做进一步的分析,我觉得OQL应该是这样的:

SELECT * from (SELECT OBJECTS dominators(s) FROM java.lang.Thread s)

但它会变成 ClassCastException。

Problem reported: 
ClassCastException occured. Remember: sub queries with the modifier INSTANCESOF or INCLUDING SUBCLASSES must return only class objects

java.lang.ClassCastException: org.eclipse.mat.parser.model.InstanceImpl cannot be cast to org.eclipse.mat.snapshot.model.IClass
at org.eclipse.mat.parser.internal.oql.OQLQueryImpl.doSubQuery(OQLQueryImpl.java:752)
at org.eclipse.mat.parser.internal.oql.OQLQueryImpl.internalExecute(OQLQueryImpl.java:642)
at org.eclipse.mat.parser.internal.oql.OQLQueryImpl.execute(OQLQueryImpl.java:627)
at org.eclipse.mat.inspections.OQLQuery.execute(OQLQuery.java:50)
at org.eclipse.mat.inspections.OQLQuery.execute(OQLQuery.java:1)
at org.eclipse.mat.query.registry.ArgumentSet.execute(ArgumentSet.java:129)
at org.eclipse.mat.ui.snapshot.panes.OQLPane$OQLJob.doRun(OQLPane.java:339)
at org.eclipse.mat.ui.editor.AbstractPaneJob.run(AbstractPaneJob.java:34)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

MAT Eclipse中的OQL是否支持嵌入式查询,如何得到我想要的结果?

最佳答案

让子查询工作有点棘手。尝试以下操作:

SELECT * from OBJECTS (SELECT OBJECTS dominators(s) FROM java.lang.Thread s)

我从下面的链接得到了解决方案: https://www.eclipse.org/forums/index.php/t/608746/

关于java - 如何在 MAT Eclipse 中使用 OQL 进行嵌入式查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11554176/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com