//$Id$ package org.hibernate.test.annotations.query; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.EntityResult; import javax.persistence.FieldResult; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.NamedNativeQueries; import javax.persistence.NamedNativeQuery; import javax.persistence.SqlResultSetMapping; import javax.persistence.SqlResultSetMappings; import javax.persistence.Table; /** * Example of a entity load incl a join fetching of an associated *ToOne entity * * @author Emmanuel Bernard */ @Entity @NamedNativeQueries({ @NamedNativeQuery( name = "night&area", query = "select night.id as nid, night.night_duration, night.night_date, area.id as aid, " + "night.area_id, area.name from Night night, tbl_area area where night.area_id = area.id", resultSetMapping = "joinMapping") }) @org.hibernate.annotations.NamedNativeQueries({ @org.hibernate.annotations.NamedNativeQuery( name = "night&areaCached", query = "select night.id as nid, night.night_duration, night.night_date, area.id as aid, " + "night.area_id, area.name from Night night, tbl_area area where night.area_id = area.id", resultSetMapping = "joinMapping") }) @SqlResultSetMappings( @SqlResultSetMapping(name = "joinMapping", entities = { @EntityResult(entityClass = org.hibernate.test.annotations.query.Night.class, fields = { @FieldResult(name = "id", column = "nid"), @FieldResult(name = "duration", column = "night_duration"), @FieldResult(name = "date", column = "night_date"), @FieldResult(name = "area", column = "area_id") }), @EntityResult(entityClass = org.hibernate.test.annotations.query.Area.class, fields = { @FieldResult(name = "id", column = "aid"), @FieldResult(name = "name", column = "name") }) } ) ) @Table(name = "tbl_area") public class Area { private Integer id; private String name; @Id @GeneratedValue public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } @Column(unique = true) public String getName() { return name; } public void setName(String name) { this.name = name; } }