gpt4 book ai didi

java - 未找到用户类型 (JPA) 的属性姓氏

转载 作者:行者123 更新时间:2023-11-30 02:56:49 24 4
gpt4 key购买 nike

用户.java:

package com.hodor.booking.jpa.domain;
import javax.persistence.Entity;
import java.util.Date;

@Entity
public class User extends AbstractPersistable {

private String firstName;

private String lastName;

private String email;

private Date birthday;

public String getFirstName() {
return firstName;
}

public String getLastName() {
return lastName;
}

public String getEmail() {
return email;
}

public Date getBirthday() {
return birthday;
}

public void setFirstName(String firstName) {
this.firstName = firstName;
}

public void setLastName(String lastName) {
this.lastName = lastName;
}

public void setEmail(String email) {
this.email = email;
}

public void setBirthday(Date birthday) {
this.birthday = birthday;
}
}

UserRepository.java:

package com.hodor.booking.jpa.repository;

import com.hodor.booking.jpa.domain.User;
import org.springframework.data.jpa.repository.JpaRepository;

/**
* For Spring Data JPA query methods see:
* http://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods
*/
public interface UserRepository extends JpaRepository<User, Long> {

public User findByEmail(String email);
public User findByLastname(String lastName);
}

UserService.java:

package com.hodor.booking.service;

import com.hodor.booking.jpa.domain.User;
import com.hodor.booking.jpa.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;

import java.util.List;

@Service
public class UserService {

@Autowired
private UserRepository userRepository;

public User saveUser(User user) {
Assert.notNull(user);
return userRepository.saveAndFlush(user);
}

public List<User> findAll() {
return userRepository.findAll();
}

public User findOne(Long id) {
Assert.notNull(id);
return userRepository.findOne(id);
}

public User findByEmail(String email) {
Assert.hasLength(email);
return userRepository.findByEmail(email);
}

public User findByLastname(String lastName) {
Assert.hasLength(lastName);
return userRepository.findByLastname(lastName);
}
}

用户 Controller :

package com.hodor.booking.controller;

import com.hodor.booking.jpa.domain.User;
import com.hodor.booking.service.UserService;
import com.wordnik.swagger.annotations.Api;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
@RequestMapping("/api/v1/users")
@Api(value = "users", description = "User resource endpoint")
public class UserController {

private static final Logger log = LoggerFactory.getLogger(UserController.class);

@Autowired
private UserService userService;

@RequestMapping(method = RequestMethod.GET)
public List<User> index() {
log.debug("Getting all users");
return userService.findAll();
}

@RequestMapping(value = "/{id}", method = RequestMethod.GET)
public User get(@PathVariable("id") Long id) {
return userService.findOne(id);
}

@RequestMapping(value = "/{lastName}", method = RequestMethod.GET)
public User get(@PathVariable("lastName") String lastName) {
return userService.findByLastname(lastName);
}
}

堆栈跟踪:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userService': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.hodor.booking.jpa.repository.UserRepository com.hodor.booking.service.UserService.userRepository; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userRepository': Invocation of init method failed; nested exception is org.springframework.data.mapping.PropertyReferenceException: No property lastname found for type User!

问题:

我添加了 findByLastname 方法,但找不到问题(我是新手)。

最佳答案

我从未使用过 Spring...但阅读了 docs关于org.springframework.data.jpa.repository.JpaRepository,我建议将您的方法重命名为UserRepository中的findByLastnamefindByLastName 界面...

看来这个功能通过读取和解析从JpaRepository扩展的给定接口(interface)上定义的方法来生成JPA查询......并且通过说“findByLastname”,Spring期望在User处找到一个属性实体为:lastname 而不是 lastName

关于java - 未找到用户类型 (JPA) 的属性姓氏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37016714/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com