【问题标题】:What are JPA entities?什么是 JPA 实体?
【发布时间】:2012-04-04 10:32:49
【问题描述】:

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

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

例如,如果我使用这个:

 entity.setUserName("michel");

然后持久化它,然后更改用户名,并再次持久化它(即合并它)

这会改变之前输入的用户名吗?还是在数据库中创建一个新行?

【问题讨论】:

    标签: java database jpa entities


    【解决方案1】:

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

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

    当然,这种行为也有例外,但总的来说是这样。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2015-10-20
        • 2011-05-27
        • 2013-09-09
        • 2011-02-16
        • 1970-01-01
        • 2010-09-16
        • 1970-01-01
        • 1970-01-01
        • 2020-02-10
        相关资源
        最近更新 更多