每次我创建一个JPA项目时,Eclipse报告我的项目中存在错误,但我不明白为什么会这样做。我在下面添加了图片和错误:
描述资源路径位置类型无法解析列“id” 在表“page”Page.java / BreakpointJPA / src / no / breakpoint / domain line 14 JPA问题
描述资源路径位置类型列“标题”不能 在桌子上解决 “page”Page.java / BreakpointJPA / src / no / breakpoint / domain line 18 JPA 问题
描述资源路径位置类型主键连接列“id” 在桌子上无法解决 “page”Page.java / BreakpointJPA / src / no / breakpoint / domain line 10 JPA 问题
答案 0 :(得分:27)
我遇到了同样的问题,我的解决方案是刷新数据库连接。
打开JPA视图,找到数据源资源管理器。在那里打开数据库连接,连接数据库,点击刷新。然后在您的文件中进行一些更改并保存,我在我的id字段中添加了一个@Column(name =“”)注释。之后,错误消息消失了,我开始使用Column注释。
问题似乎是eclipse在建立第一个连接后读取数据库表,然后关闭连接。因此,如果您像我一样,在数据库中的第一次连接之后进行了一些更改,比如将字段名称从foo_id更改为id,则eclipse不知道并且出现此错误。
答案 1 :(得分:5)
旧线程,但我只是遇到了同样的问题,并用更快的方法解决了。
希望这有助于某人。
答案 2 :(得分:2)
如果您想轻松解决问题,请阅读
您的数据库没有问题。您只需创建一个从Eclipse到我们在向项目添加JPA功能期间所做的同一数据库的新连接。
步骤: -
从mysql提示符创建一个新数据库
右键单击Eclipse / MyEclipse中的Project,然后转到Properties
单击左侧的Eclipse / MyEclipse选项卡,然后单击JPA子菜单
然后单击“创建新连接”。添加一个新的连接名称。并添加相同的数据库。 (您也可以选择更改数据库,但同样的数据库也可以。)
测试连接,然后单击完成
第一次它不会显示新创建的连接名称。只需单击“确定”即可关闭该窗口。
然后,再次右键单击Project,然后单击Propeties。现在,您可以在该连接下拉列表中看到新创建的连接。选择并单击“确定”。
你的错误会消失。
此错误的可能原因: -
每次使用persistence.xml使用任何项目进行连接时,Eclipse都会与您建立数据库连接,但这是第一次
因此,之后的任何更改,尤其是从数据库端(表名等)的更改都将从Eclipse中抛出错误。
谢谢。
答案 3 :(得分:2)
我遇到了同样的问题。这是我解决它的方式
答案 4 :(得分:2)
转到Data Source Explorer,断开数据库连接,连接数据库连接后,右键单击项目并单击“验证”。
我希望它可以帮到你。
答案 5 :(得分:1)
您的项目中是否包含JPA / JPA2接口?如果您使用的是maven,则需要为类包含依赖项。我认为它们是因为导入声明中没有出现红线,但为了安全起见,您应该验证它们是否存在。
对于JPA2依赖项,您可以使用:
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.0-api</artifactId>
<version>1.0.0.Final</version>
</dependency>
答案 6 :(得分:0)
你可以试试这个:
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name = "id", unique=true, nullable=false)
private int id
答案 7 :(得分:0)
尝试在@Column(name =“”)的引号内进行代码辅助。或者打开JPA详细信息视图并查看列名称组合以查看列选项。 @Table(name =“page”)注释没有验证错误,因此看起来Eclipse正在查找页表。
答案 8 :(得分:0)
注释看起来正确,你确定你的项目类路径好吗?首先尝试构建没有id和title字段的实体。
答案 9 :(得分:0)
在我的情况下,它只是属性中的旧连接 - > JPA-&gt;添加连接。所以刷新无济于事。 正确的数据库的新连接将有助于刷新时不会。