java—有没有办法将 predicate < t>条件作为字符串获取?

yeotifhr  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(334)

关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。

28天前关门了。
改进这个问题
我正在学习jdbc,我想如果我将值Map传递给changes,并将条件Map传递给update()方法会很有趣。
我有点像:

public void update(Map<String, Serializable> valuesToChange, Map<String, Predicate<T>> mapOfConditions){...}

如何接收 predicate 测试的字符串?
假设我有:

predicateMap.put("id", id -> (int) id > 20);
    predicateMap.put("last_name", lastName -> lastName  == "Jobs");

如何以字符串形式接收条件,如:
lastname==“作业”或id>20
我需要它作为sql查询中的where条件。
干杯

0h4hbjxa

0h4hbjxa1#

你所要求的几乎是不可能的。它要求您将 predicate 中的字节码反向编译为java,并从那里将java转换为sql。我不敢相信你会愿意冒这个险,也因为这样的收益微乎其微。
如果 predicate 是 id -> id == 20 . 然而, predicate 可能很复杂。它们可能涉及没有直接sql对应的java语言构造。它们可能涉及对库方法(包括第三方库方法)的调用,甚至是对远程服务和用java以外的其他语言编写的代码的调用。我看不出有什么办法可以将所有这些都转换成sql。

相关问题