在IntelliJ中,当我尝试编译时,我得到了这个奇怪的错误。
Cannot find annotation method 'cascade()' in type 'javax.persistence.ManyToOne': class file for javax.persistence.ManyToOne not found
我知道,问题似乎很明显,但是在这个问题上花了太多时间,我现在把信任交给你了!
我使用ideaCommunity-9,我在其中为JBoss创建了一个全局库,其中包含所有JBoss jar,包括ejb3-persistence.jar。我的模块包含这个库,我已将其移至依赖项的顶部。
在classpath中没有其他地方我有一个javax.persistence.ManyToOne类,它也可以在IntelliJ中打开而没有问题。
如果我打开文件,我收到编译错误,IntelliJ显示没有问题,并按Ctrl + B导航到类文件。
代码也是用ant构建的,这里工作正常。
除了上面的错误,我在同一条路径上得到了另外六个(表中的名字等) - 都与JPA有关。我还收到一条消息说“请向JDC yada yada yada提交一个错误。”
答案 0 :(得分:32)
尝试勾选依赖项中的“导出”复选框。
我的意思是:“文件”菜单 - >项目结构 - >模块 - >依赖关系,你可以看到模块中包含的库。您还应该在“导出”列中的每个库附近看到一个复选框。
答案 1 :(得分:9)
我自己就是这样,但不是那些事情是我的问题。我从github下载了一个项目,然后在尝试运行junit测试后在intel J中打开了问题。
解决方案:项目结构 - >模块 - > 'Project_Name' - >来源(标签) - >点击src文件夹 - >标记为:来源
这应该突出显示src为蓝色,所有类文件应该是带有C的圆圈,而不是看起来像普通文件。尝试再次运行测试,看看是否可以。
答案 2 :(得分:2)
我敢肯定,现在回答为时已晚,但我不得不采用不同的方法来解决此问题。
我必须将其创建为全局库并将该库添加到模块中,然后才解决错误。
答案 3 :(得分:1)
与此SO question不相似吗?
解决方案是添加所有JBoss jar(你做过),还有所有持久相关的库(比如Hibernate)
请参阅此JBoss project configuration,例如:
alt text http://jdick.co.uk/blog/wp-content/uploads/2008/12/projectstructure1.jpg
简而言之,ejb3-persistence.jar
可能不是问题所在,只是其他元素缺失的症状。
或者,如果是问题,则可能与未正确部署的事实有关(对于WebApp configuration)。
答案 4 :(得分:0)
这是一个想法:
也许你的jar文件有多个版本。
在文件夹层次结构中搜索文件ejb3-persistence.jar
,
使用Total Commander等文件管理工具。
类路径中文件的多次出现可能会混淆IntelliJ Idea
在适当的罐子里没有认识到适当的课程。
答案 5 :(得分:0)
有一个类似的问题(“找不到类弹簧... DefaultResourceLoader,即使它在我的maven依赖项中”并且重新验证缓存的调整量似乎没什么帮助。吹掉我的$ HOME /.Idea *路径和(基本上)从头开始为我修复它。至少现在......
答案 6 :(得分:0)
我在尝试执行class not found
测试类时收到.groovy
错误消息,该测试类引用了.groovy
文件(位于子模块的源目录的根目录中 - 即没有包裹。)
将源文件.groovy
移到包中,为我解决了这个问题。
移动:
src/main/groovy/RunMe.groovy
到
src/main/groovy/somePackage/RunMe.groovy
答案 7 :(得分:0)
在intelliJ中,当我在文件级别构建(ctrl + shift + F9)时遇到了这个问题。
原因是,我对同一个maven项目中的其他文件进行了更改,但没有被选中。
我通过在项目级别构建解决了它(在intellij中选择Maven项目并按ctrl + shift + F9)