Test case attached. Note that the test succeeds if updatable = false is removed from @JoinColumn of Book.java. (So we know the @JoinColumn(updatable=false) caused the issue.)