Spring Data JPA Repository方法查询有哪些?

时间:2014-07-09 20:43:25

标签: spring hibernate jpa spring-data

在Spring-data JPA中,无论如何都要创建一个方法查询,实际上是通过像?

我有以下方法查询

public MakeModel findByModelIgnoreCase(String model);

我真正想要的是一个表达方式。我是否需要创建Criteria或@Query注释?我问得太多了吗?

   //Stupid example of what I want to be able to do

    public MakeModel findByFuzzyModelIgnoreCase(String model);

真的,我猜它的核心,我想做一个表搜索。我在Spring Data下面使用了Hibernate,所以我想我可以使用像Hibernate Search这样的搜索api。我愿意接受这里的建议。

3 个答案:

答案 0 :(得分:26)

如果您不想添加"%"手动,您可以使用以下查询方法:

<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:Panel ID="PanelCard" runat="server" Visible="false" OnLoad="RadioButton1_CheckedChanged">
   <%--Form here--%>
   <asp:Button ID="Button1" runat="server" Text="Submit Payment" ClientIDMode="Static" CssClass="formbutton" />
   </asp:Panel>
   <asp:Panel ID="PanelCheck" runat="server" Visible="false" OnLoad="RadioButton1_CheckedChanged">
   <%--Form here--%>
   <asp:Button ID="Button1" runat="server" Text="Submit Payment" ClientIDMode="Static" CssClass="formbutton" />
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>

答案 1 :(得分:21)

也支持:

MakeModel findByModelLikeIgnoreCase(String model);

当您调用该方法时,请使用以下方法: 在开始时添加"%"表示严格的开始匹配无关紧要, 最后一样,或者你可以使用其中一个,这取决于你想要的。

MakeModel makeModel = findByModelLikeIgnoreCase("%"+model+"%");

如果您的品牌型号为test且要比较的字符串为"%"+model+"%"则为:

es is a match , T is a match , test is a match  

要比较的字符串是model+"%"

te is a match , es is not .

答案 2 :(得分:-2)

如果要将“%”添加到一个日期源,请键入Date,如何执行,就像这样 MakeModel findByModelStartingWithIgnoreCase(日期模型);