【问题标题】:Not able to findById while using the query through spring jpa hibernate [closed]通过spring jpa hibernate使用查询时无法findById [关闭]
【发布时间】:2020-10-15 14:01:22
【问题描述】:

我有表 SEQUENCE,它存储其他表的序列元数据。我们查询这个表来获取最新的序列,不确定为什么现在我们有序列生成器。无论如何,所以当我尝试使用 findById 传递表名参数时,它返回 null。知道为什么它根本不读表。当我尝试使用 oracle 开发人员编辑器进行查询时,它工作正常。有什么问题?

更新 所以我想我们正在使用自定义表格序列生成器。所以我正在尝试使用@TableGenerator:

@Id
    @GeneratedValue(strategy = GenerationType.TABLE,
            generator = "table-generator")
    @TableGenerator(name = "table-generator",
            table = "sequence",
            pkColumnName = "seq_table",
            valueColumnName = "seq_last_seq")

SEQUENCE 表:SEQ_TABLE、SEQ_LAST_SEQ、SEQ_INCREMENT

现在的问题是因为这个表 SEQUENCE 有额外的列 SEQ_INCREMENT 我得到这个错误: 引起:java.sql.SQLIntegrityConstraintViolationException:ORA-01400:无法将 NULL 插入(“SCHEMA NAME”。“SEQUENCE”。“SEQ_INCREMENT”) SEQUENCE 表的 SEQ_INCREMENT 列设置为 NOT NULL。我如何确保更新列未设置为空

【问题讨论】:

    标签: java sql spring hibernate jpa


    【解决方案1】:

    您不需要将表名作为参数传递。

    当你定义你的模型时,在那个文件中你说表名是什么:

    在我的例子中,我的模型被称为 Call,而表名被称为 calls

    创建一个这样的存储库:

    存储库已经有一些您可以使用的默认“查询”,如果您想做 findById,您只需要调用它并传递 ID。

    【讨论】:

    • 对。现在我认为这是我要查询的 SEQUENCE 默认表。所以我需要使用@TableGenerator
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-12
    • 2020-06-05
    相关资源
    最近更新 更多