Doing something like this:
@OneToOne(fetch = FetchType.EAGER) @NotFound(action = NotFoundAction.IGNORE) @JoinColumn(name="join_column") private X property1;
Avoids the EntityNotFoundException and the property gets set to null.
While this:
@Any(fetch = FetchType.EAGER, metaDef = "someMetaDef", metaColumn = @Column(name = "meta_column", nullable = false)) @NotFound(action = NotFoundAction.IGNORE) @JoinColumn(name="join_column", unique=true, updatable=false, insertable = false)
Not only throws the exception but also initializes the object as a lazy proxy rather than null.