hibernate如何从现有数据库视图中检索数据?

nat*_*han 9 java hibernate

我刚接触休眠.我的问题是我有一个Oracle数据库.我在数据库中有一个视图.现在我想使用hibernate来检索该视图中的数据.有没有可能的解决方案?

Ash*_*och 6

Snippet下面可以解决您的问题,这个问题已从教程中提取:将Hibernate实体映射到视图

Database Query 

CREATE OR REPLACE VIEW cameron AS
  SELECT last_name AS surname
  FROM author
  WHERE first_name = 'Cameron';

view entity

@Entity
@NamedNativeQuery(name = "findUniqueCameronsInOrder", query = "select * from cameron order by surname", resultClass = Cameron.class)
public class Cameron implements java.io.Serializable {

    private static final long serialVersionUID = 8765016103450361311L;

    private String surname;

    @Id
    @Column(name = "SURNAME", nullable = false, length = 50)
    public String getSurname() {
        return surname;
    }

    public void setSurname(final String surname) {
        this.surname = surname;
    }
}

Hibernate mapping file.

 <mapping class="examples.hibernate.spring.query.domain.Cameron" />

finally some test !...

 @Test
    public void findTheCameronsInTheView() throws Exception {
        final List<Cameron> camerons = findUniqueCameronsInOrder();
        assertEquals(2, camerons.size());
        final Cameron judd = camerons.get(0);
        final Cameron mcKenzie = camerons.get(1);
        assertEquals("Judd", judd.getSurname());
        assertEquals("McKenzie", mcKenzie.getSurname());
    } 
Run Code Online (Sandbox Code Playgroud)