【问题标题】:How to create database stored procedure call that will send as one parameter table and get as one return (out) parameter table如何创建将作为一个参数表发送并作为一个返回(输出)参数表获取的数据库存储过程调用
【发布时间】:2017-06-12 02:00:34
【问题描述】:

如何创建一个数据库存储过程调用,它将一个表作为一个参数发送并作为一个返回(输出)参数表获取。

我从发送表作为参数开始,然后执行以下操作:

@NamedStoredProcedureQuery(name = "testProcedure",
        procedureName = "testProcedure",
        resultClasses = {Integer.class},
        parameters = {
                @StoredProcedureParameter(
                        mode = ParameterMode.IN,
                        name = "tabela",
                        type = Tabela.class),
                @StoredProcedureParameter(
                        mode = ParameterMode.OUT,
                        name = "ilosc",
                        type = Integer.class)
        }
)

public class TestProcedure implements Serializable {
    @Id
    private Integer id;
}

也可以试试这样的:

    final StoredProcedureQuery testProcedure = entityManager
            .createNamedStoredProcedureQuery("testProcedure")
            .registerStoredProcedureParameter(0, Object.class, ParameterMode.OUT)
            .registerStoredProcedureParameter(1, Object.class, ParameterMode.IN);

    List<Tabela> arrayList = new ArrayList<>();
    arrayList.add(Tabela.builder().firstName("Dominik").age(11).build());
    arrayList.add(Tabela.builder().firstName("Dominik22").age(22).build());

    testProcedure.setParameter(1, arrayList);

    testProcedure.execute();

但每次我得到“类型不能为空”

我制作了这个表格实体,但它不起作用:

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Entity
@Table(name = "tabela")
public class Tabela {
    @Id
    @Column(name = "first_name")
    private String firstName;
    @Column(name = "age")
    private Integer age;
}

有什么想法吗?

【问题讨论】:

    标签: java sql-server spring hibernate spring-boot


    【解决方案1】:

    插入输入表(可能是全局临时表)然后执行存储过程可能更容易,该存储过程可以从该表读取并写入不同的输出表(同样,可能是全局临时表)然后您可以在其中查询输出。

    【讨论】:

    • 我不能这样做。我只能在那个数据库上执行程序,仅此而已。
    猜你喜欢
    • 1970-01-01
    • 2020-12-09
    • 2015-01-14
    • 2018-05-22
    • 2019-07-12
    • 1970-01-01
    • 1970-01-01
    • 2021-04-08
    • 1970-01-01
    相关资源
    最近更新 更多