目录

第 11 章 Read-only entities

优质
小牛编辑
144浏览
2023-12-01

重要

Hibernate's treatment of read-only entities may differ from what you may have encountered elsewhere. Incorrect usage may cause unexpected results.

When an entity is read-only:

  • Hibernate does not dirty-check the entity's simple properties or single-ended associations;

  • Hibernate will not update simple properties or updatable single-ended associations;

  • Hibernate will not update the version of the read-only entity if only simple properties or single-ended updatable associations are changed;

In some ways, Hibernate treats read-only entities the same as entities that are not read-only:

  • Hibernate cascades operations to associations as defined in the entity mapping.

  • Hibernate updates the version if the entity has a collection with changes that dirties the entity;

  • A read-only entity can be deleted.

Even if an entity is not read-only, its collection association can be affected if it contains a read-only entity.

For details about the affect of read-only entities on different property and association types, see 第 11.2 节 “Read-only affect on property type”.

For details about how to make entities read-only, see 第 11.1 节 “Making persistent entities read-only”

Hibernate does some optimizing for read-only entities:

  • It saves execution time by not dirty-checking simple properties or single-ended associations.

  • It saves memory by deleting database snapshots.