Java 什么是JPA实体?

Java 什么是JPA实体?,java,database,jpa,entities,Java,Database,Jpa,Entities,我开始使用JPA,我总是对实体这个术语及其用法感到困惑,我读了很多书,但我仍然不太明白。 我阅读了有关它的Oracle文档,但它没有真正解释它在事务中的作用 什么是JPA优势?它们是否实际保存了每一行的数据,我的意思是,它们是否存储了保存行数据的实例?或者他们只是映射数据库的表,然后在其中插入和删除 例如,如果我使用这个: entity.setUserName("michel"); 然后将其持久化,然后更改用户名,然后再次将其分散(即合并) 这是否会更改以前输入的用户名?或者它会在数据库中创

我开始使用JPA,我总是对实体这个术语及其用法感到困惑,我读了很多书,但我仍然不太明白。 我阅读了有关它的Oracle文档,但它没有真正解释它在事务中的作用

什么是JPA优势?它们是否实际保存了每一行的数据,我的意思是,它们是否存储了保存行数据的实例?或者他们只是映射数据库的表,然后在其中插入和删除

例如,如果我使用这个:

 entity.setUserName("michel");
然后将其持久化,然后更改用户名,然后再次将其分散(即合并)


这是否会更改以前输入的用户名?或者它会在数据库中创建新行吗?

当您从代码角度思考时,实体与类的实例大致相同;当您从数据库角度思考时,实体与表中的行(基本上)大致相同

因此,它本质上是一个类的持久化/持久化实例。更改其上的值就像更改任何其他类实例上的值一样。不同之处在于,您可以持久化这些更改,通常情况下,类实例(实体)的当前状态将根据数据库中与类实例(实体)中的“id”或类似字段匹配的主键覆盖该实例(实体)在数据库中的行值


当然,这种行为也有例外,但总的来说确实如此。

这是一种模式。它是一个可以持久化的域对象。别想太多。类似于Rails模型。记住,模型(在这个范例中)是可变的