如何解决无法解析“可选”中的方法“getName”
我想使用 getter getName()
获取我的数据库的值。
首先,我创建了 User.java:
package ch.concertopro.webshopanalyser.entity;
import javax.persistence.*;
@Entity(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
private String name;
@Column(unique = true,nullable = false)
private String email;
private String dob;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getDob() {
return dob;
}
public void setDob(String dob) {
this.dob = dob;
}
}
然后我创建了 UserRepository.java:
package ch.concertopro.webshopanalyser.repository;
import ch.concertopro.webshopanalyser.entity.User;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface UserRepository extends CrudRepository<User,Integer> {
}
这是我尝试获取 getName()
值的服务:
package ch.concertopro.webshopanalyser.service;
import ch.concertopro.webshopanalyser.entity.User;
import ch.concertopro.webshopanalyser.repository.UserRepository;
import org.springframework.stereotype.Service;
@Service
public class UserService {
final UserRepository userRepository;
public UserService(UserRepository userRepository) {
this.userRepository = userRepository;
}
public Iterable<User> getUser() {
return userRepository.findById(1).getName();
}
}
但我收到错误无法解析“可选”中的方法“getName”。为什么?
解决方法
为了您的目的,您应该更改您的方法实现,例如:
public Optional<String> getUser() {
return userRepository.findById(1)
.map(User::getName);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。