问题描述
我是hibernate的新手。我的问题是我有一个Oracle数据库。我在数据库中有一个视图。现在我想用hibernate在该视图中检索数据。有没有可能的解决方案?
非常感谢。
下面的代码片段可以解决你的问题,这已从教程中提取: I'm new to hibernate. My problem is that I have an Oracle database. I have a view in the database. Now I want to use hibernate to retrieve data in that view. Is there any possible solutions? Thank you very much. Below Snippet can solve your problem, which has been extracted from the tutorial: Mapping Hibernate Entities to Views 这篇关于hibernate如何从现有的数据库视图中检索数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!
创建或替换VIEW cameron AS
SELECT last_name AS姓氏
FROM作者
WHERE first_name ='Cameron';
查看实体
@Entity
@NamedNativeQuery(name =findUniqueCameronsInOrder,query =select * from cameron order by surname,resultClass = Cameron.class )
公共类Cameron实现java.io.Serializable {
private static final long serialVersionUID = 8765016103450361311L;
私人字符串姓氏;
@Id
@Column(name =SURNAME,nullable = false,length = 50)
public String getSurname(){
return surname;
}
public void setSurname(final String surname){
this.surname = surname;
}
}
Hibernate映射文件。
< mapping class =examples.hibernate.spring.query.domain.Cameron/>
终于有一些测试!...
@Test
public void findTheCameronsInTheView()throws Exception {
final List< Cameron> camerons = findUniqueCameronsInOrder();
assertEquals(2,camerons.size());
最终卡梅伦judd = camerons.get(0);
final Cameron mcKenzie = camerons.get(1);
assertEquals(Judd,judd.getSurname());
assertEquals(McKenzie,mcKenzie.getSurname());
}
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());
}