我有一个简单的过程,用于列出用户。我使用@NamedStoredProcedureQueries
进行过程声明,并使用EntityManager.createNamedStoredProcedureQuery
来创建StoredProcedureQuery
。
它可以正确返回结果,但我需要列名,以便我知道哪个值属于哪个列。
我的代码大致如下
实体类
@Entity
@NamedStoredProcedureQueries({ @NamedStoredProcedureQuery(name =
"sGetUserList", procedureName = "sGetUserList", parameters = {
@StoredProcedureParameter(mode = ParameterMode.IN, name = "user_id", type =
Integer.class) })
})
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
private String name;
private String email;
//getters and setters
}
自定义仓库
public interface UserRepositoryCustom {
List<?> testProc() ;
}
代码仓库
public interface UserRepository extends JpaRepository<User, Long>,
UserRepositoryCustom{
}
仓库实现
public class UserRepositoryImpl implements UserRepositoryCustom{
@PersistenceContext
EntityManager em;
public List<Object> testProc() {
StoredProcedureQuery q = em.createNamedStoredProcedureQuery("sGetUserList");
q.setParameter("user_id", 1);
List<Object> res = q.getResultList();
return res;
}
}
我需要带有列名的结果。