В дополнение к опциям, упомянутым Juha, вы также можете создать объект непосредственно из запроса SQL с помощью аннотаций NamedNativeQuery и SqlResultSetMapping.
@Entity
@SqlResultSetMapping(name = "compositekey", entities =
@EntityResult(entityClass = MiniBar.class,
fields = { @FieldResult(name = "miniBar", column = "BAR_ID"), })
)
@NamedNativeQuery(name = "compositekey",
query = "select BAR_ID from BAR", resultSetMapping = "compositekey")
@Table(name = "BAR")
public class Bar {
Приправьте SQL-запрос на свой вкус