Question: Is it possible to get Hibernate to lazy load a property on an entity? We have a few clobs in a project I've inherited that are being loaded by default. I am hoping to modify the XML as a stop-gap before we convert the mappings to Annotations.

Answer: 
Yes. See ["Using lazy property fetching"](http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html_single/#performance-fetching-lazyproperties).
With Hibernate 5, [this can be done as follows:](https://vladmihalcea.com/how-to-lazy-load-entity-properties-with-hibernate/). 

First, you need to add the following Maven plugin:

```
<plugin>
    <groupId>org.hibernate.orm.tooling</groupId>
    <artifactId>hibernate-enhance-maven-plugin</artifactId>
    <version>${hibernate.version}</version>
    <executions>
        <execution>
            <configuration>
                <enableLazyInitialization>true</enableLazyInitialization>
            </configuration>
            <goals>
                <goal>enhance</goal>
            </goals>
        </execution>
    </executions>
</plugin>

```

Then, you can simply annotate your entity properties with `@Basic(fetch = FetchType.LAZY)`:

```
@Entity(name = "Event")
@Table(name = "event")
public class Event extends BaseEntity {

    @Type(type = "jsonb")
    @Column(columnDefinition = "jsonb")
    @Basic(fetch = FetchType.LAZY)
    private Location location;

    public Location getLocation() {
        return location;
    }

    public void setLocation(Location location) {
        this.location = location;
    }
}

```

When you fetch the entity:

```
Event event = entityManager.find(Event.class, 
    eventHolder.get().getId());

LOGGER.debug("Fetched event");
assertEquals("Cluj-Napoca", event.getLocation().getCity());

```

Hibernate is going to load the lazy property using a secondary select:

```
SELECT e.id AS id1_0_0_
FROM   event e
WHERE  e.id = 1

-- Fetched event

SELECT e.location AS location2_0_
FROM   event e
WHERE  e.id = 1

```