Spring Boot 3 data jpa へのアップグレード中に JPA クエリが機能しない
温馨提示:
本文最后更新于 2024年04月12日,已超过 37 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
現在、Spring Boot 2.7 と Java 11 を使用しています。Spring Boot 3.2.4 と Java 17 にアップグレードしようとしています。
@Entity
@Table(name = "user_token")
public class UserToken extends {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "user_token_id")
private Long userTokenId;
@OneToOne
@JoinColumn(name = "user_id", referencedColumnName = "user_id", nullable = false)
private User user;
@Column(name = "user_token", length = 100, unique = true)
@NotNull
private String userToken;
}
@Repository
public interface UserTokenRepository extends JpaRepository<UserToken, Long> {
@Query("Select ut.user From UserToken ut Where ut.userToken = :accessToken and ut.isActive = 1")
User retrieveUserByToken(String accessToken);
}
次のエラーが発生します:
Exception encountered during context initialization - cancelling refresh attempt:
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with
name 'userTokenRepository' defined in com.dao.repository.security.UserTokenRepository defined
in @EnableJpaRepositories declared on SecurityServiceApplication: Could not create query for
public abstract com.dao.domain.security.User
com.dao.repository.security.UserTokenRepository.retrieveUserByToken(java.lang.String);
Reason: Validation failed for query for method public abstract com.dao.domain.security.User
com.dao.repository.security.UserTokenRepository.retrieveUserByToken(java.lang.String)
以下の @Query でも試してみましたが、同じエラーが発生しました。
@Query("Select u From UserToken ut INNER JOIN ut.user u Where ut.userToken = :accessToken and ut.isActive = 1")
ネイティブクエリを使用すると正常に機能しますが、JPAクエリはSpring boot 3.2.4では機能しません。同じコードが Spring Boot 2.7 でも機能しました。誰かがここでの続行方法について助けてくれますか?設定やコードの変更が必要ですか?
正文到此结束
- 本文标签: 家庭宠物
- 本文链接: https://www.coder6.net/article/2569
- 版权声明: 本文由蚂蚁原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权
热门推荐
-
浏览(166) 评论(0)