Kal*_*asa 2 java spring-data-jpa
例如,我有一个具有以下属性的实体:
@Entity
public class MyObj {
public String nameOrId;
}
Run Code Online (Sandbox Code Playgroud)
然后我继续创建存储库
public interface MyObjRepository extends JpaRepository<MyObj, String> {
MyObj findByNameOrId(String nameOrId);
}
Run Code Online (Sandbox Code Playgroud)
这失败了,因为 Spring 似乎将方法名称标记为findBy Name Or Id,而不是findBy nameOrId。
由此产生的错误是“名称”属性未找到(或类似)。
有没有办法转义方法语法中的特殊词(“Or”、“And”等)?重命名列以不包含这些词不是一种选择。
一种解决方法是重命名 Java 字段以避免使用特殊词,同时使用@Column注释保留列名。
@Column(name = "nameOrId")
public String nameId;
Run Code Online (Sandbox Code Playgroud)
JPA 方法被相应地重命名。
MyObj findByNameId(String nameOrId);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
945 次 |
| 最近记录: |