我正在尝试使用Spring Repository类中的方法:
import javax.persistence.Column;
@Entity
@Table(name = "Tool")
public
class
Tool implements Serializable
{
@Column(name = "number") protected Integer mNumber;
public Integer getNumber() { return mNumber; }
protected void setNumber(Integer inVal) { mNumber = inVal; }
}
使用这样定义的Entity列。请注意,虽然我明确地将列命名为“number”,但Spring(或Hibernate)会看到实际的成员变量名称“mNumber”,并且无法生成正确的查询。
1.4.3.RELEASE
是否有注释来指定Spring在解释查询时应使用的名称?
此代码使用spring-boot <!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Demo</title>
</head>
<body>
<a href="http://jquery.com/">jQuery</a>
<script src="jquery.js"></script>
<script>
// Your code goes here.
</script>
</body>
</html>
构建,我正在使用Postgres。
答案 0 :(得分:3)
将findBy更改为以下内容:
public interface ToolRepository extends Repository<Tool, Long>
{
public Tool findByMNumber(String mNumber);
}
如果更改参数名称,则需要使用@Param注释并指定属性名称。
如果您不想更改方法名称,请使用@Query注释:
public interface ToolRepository extends Repository<Tool, Long>
{
@Query("from Tool where mNumber = :number")
public Tool findByNumber(String number);
}
如果需要,为mNumber生成getter和setter。您可以通过IDE生成它。