I think your issuesissue comes from using @Fetch(FetchMode.join) together with Lazy Loading. If you don't want to load the Customer eagerly then you should remove the @Fetch(FetchMode.join) and only use lazy loading
See more infos regarding this here (https://stackoverflow.com/a/29667050/2637940):
First of all, @Fetch(FetchMode.JOIN) and @ManyToOne(fetch = FetchType.LAZY) are antagonistic, one instructing an EAGER fetching, while the other suggesting a LAZY fetch.