/*
* Hibernate, Relational Persistence for Idiomatic Java
*
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
*/
package org.hibernate.jpa.test.procedure;
import javax.persistence.Entity;
import javax.persistence.EntityResult;
import javax.persistence.FieldResult;
import javax.persistence.Id;
import javax.persistence.NamedStoredProcedureQueries;
import javax.persistence.NamedStoredProcedureQuery;
import javax.persistence.ParameterMode;
import javax.persistence.SqlResultSetMapping;
import javax.persistence.StoredProcedureParameter;
import javax.persistence.Table;
/**
* @author Strong Liu <stliu@hibernate.org>
*/
@Entity
@NamedStoredProcedureQueries(
{
@NamedStoredProcedureQuery(
name = "s1",
procedureName = "p1",
parameters = {
@StoredProcedureParameter(name = "p11",
mode = ParameterMode.IN,
type = Integer.class),
@StoredProcedureParameter(name = "p12",
mode = ParameterMode.IN,
type = Integer.class
)
},
resultClasses = { User.class }
),
@NamedStoredProcedureQuery(
name = "s2",
procedureName = "p2",
parameters = {
@StoredProcedureParameter(
mode = ParameterMode.INOUT,
type = String.class),
@StoredProcedureParameter(
mode = ParameterMode.INOUT,
type = Long.class)
},
resultSetMappings = { "srms" }
),
@NamedStoredProcedureQuery(
name = "positional-param",
procedureName = "positionalParameterTesting",
parameters = {
@StoredProcedureParameter( mode = ParameterMode.IN, type = Integer.class )
}
)
}
)
@SqlResultSetMapping(name = "srms",
entities = {
@EntityResult(entityClass = User.class, fields = {
@FieldResult(name = "id", column = "order_id"),
@FieldResult(name = "name", column = "order_item")
})
}
)
@Table( name = "T_USER" )
public class User {
@Id
private int id;
private String name;
public User() {
}
public User(int id, String name) {
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}