Java 如何在上述场景中使用命名参数?

Java 如何在上述场景中使用命名参数?,java,oracle,spring,hibernate,Java,Oracle,Spring,Hibernate,我正在使用hibernate。我需要动态添加where条件。我发送字符串列表。 从employee中选择* 现在我需要添加where条件,如下所示: 选择*from employee,其中name like:somename或name like:othername 这里somename和othername是命名参数。值是从字符串列表中设置的。 在这种情况下,列表可以包含两个字符串,以便为两个命名参数设置值 如何使用命名参数的名称 现在,我正在为两个命名参数使用字符串列表,并设置它们的值。 问题是

我正在使用hibernate。我需要动态添加where条件。我发送字符串列表。 从employee中选择*

现在我需要添加where条件,如下所示: 选择*from employee,其中name like:somename或name like:othername

这里somename和othername是命名参数。值是从字符串列表中设置的。 在这种情况下,列表可以包含两个字符串,以便为两个命名参数设置值

如何使用命名参数的名称

现在,我正在为两个命名参数使用字符串列表,并设置它们的值。 问题是使用命名参数几乎没有限制

命名参数不应包含特殊字符-、/和空格。也称为param的长度不应超过30个字符

如果我的字符串列表中有任何名称包含上述特殊字符,或者其长度超过30个字符,则如果将此类字符串用作命名参数,则会引发异常


如何为列表中的每个字符串使用命名参数?

您是否尝试过使用Criteria API

很好地选择了一堆不应该成为API标准问题的地方。。 只关心你喜欢的人

看看这个,如果你需要更多的细节,告诉我。

你的问题是一堵无法阅读的文字墙。试着把它拆开,这样人们才会真正想看。嗨,亲爱的,谢谢你的回复。这里作为一个例子,我提到了简单的员工查询。但实际的查询太复杂了,我不能使用条件,必须使用原生sql查询。您好,谢谢您的回复。该链接涉及标准。但我必须使用本机sql。我唯一的问题是,我必须使用哪些名称作为命名参数?首先是一段代码,带有字符串缓冲区,它向您展示了如何使用where的加载构建sql