That's not a bug, but this is just how inheritance works in Hibernate/JPA. The primary key of an entity must be unique across the entity hierarchy. If you persist a Book with id 1 and then try to read a BorrowedBook with id 1 your modelling is simply wrong. BorrowedBook should not extend the entity Publication as it is not a special type, but a different thing entirely. You'll have to map the things separately and stop fearing "duplication" or map everything through `@Embeddable` parts. Another possible way to go forward is to stop using database views and instead rely on DTOs and queries instead of managed entities. Maybe take a look at Blaze-Persistence Entity-Views. |