Eclipse在我的JPA项目中报告错误

时间:2011-10-23 11:06:06

标签: java eclipse java-ee jpa

每次我创建一个JPA项目时,Eclipse报告我的项目中存在错误,但我不明白为什么会这样做。我在下面添加了图片和错误:

enter image description here

  

描述资源路径位置类型无法解析列“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   问题

enter image description here

10 个答案:

答案 0 :(得分:27)

我遇到了同样的问题,我的解决方案是刷新数据库连接。

打开JPA视图,找到数据源资源管理器。在那里打开数据库连接,连接数据库,点击刷新。然后在您的文件中进行一些更改并保存,我在我的id字段中添加了一个@Column(name =“”)注释。之后,错误消息消失了,我开始使用Column注释。

问题似乎是eclipse在建立第一个连接后读取数据库表,然后关闭连接。因此,如果您像我一样,在数据库中的第一次连接之后进行了一些更改,比如将字段名称从foo_id更改为id,则eclipse不知道并且出现此错误。

答案 1 :(得分:5)

旧线程,但我只是遇到了同样的问题,并用更快的方法解决了。

  1. 项目属性 - > JPA
  2. 将连接更改为。点击申请。
  3. 更改与先前值的连接。点击申请。
  4. 希望这有助于某人。

答案 2 :(得分:2)

如果您想轻松解决问题,请阅读

您的数据库没有问题。您只需创建一个从Eclipse到我们在向项目添加JPA功能期间所做的同一数据库的新连接。

步骤: -
从mysql提示符创建一个新数据库 右键单击Eclipse / MyEclipse中的Project,然后转到Properties 单击左侧的Eclipse / MyEclipse选项卡,然后单击JPA子菜单 然后单击“创建新连接”。添加一个新的连接名称。并添加相同的数据库。 (您也可以选择更改数据库,但同样的数据库也可以。) 测试连接,然后单击完成 第一次它不会显示新创建的连接名称。只需单击“确定”即可关闭该窗口。

然后,再次右键单击Project,然后单击Propeties。现在,您可以在该连接下拉列表中看到新创建的连接。选择并单击“确定”。

你的错误会消失。

此错误的可能原因: -
每次使用persistence.xml使用任何项目进行连接时,Eclipse都会与您建立数据库连接,但这是第一次 因此,之后的任何更改,尤其是从数据库端(表名等)的更改都将从Eclipse中抛出错误。

谢谢。

答案 3 :(得分:2)

我遇到了同样的问题。这是我解决它的方式

  1. 刷新了连接
    • 转到Data Source Explorer
    • 选择连接并右键单击
    • 选择刷新
  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;添加连接。所以刷新无济于事。 正确的数据库的新连接将有助于刷新时不会。