我有一个Java (使用JPA)项目,如下所示。
数据库端的:
TableName -用户详细信息
Java端的:
问题:
我应该做userRepository.storeToUserDetails("1","John",Status.CREATED)吗?
例如userRepository.findUserDetailsByStatusIn(Status.CREATED)
发布于 2018-10-10 09:23:05
1.您可以添加到项目Service
类的逻辑中,并从主代码中使用它。反过来,类Service
应该使用接口Reposytory
。
public class UserService{
@Autovired
private UserRepository userRepository;
public storeToUserDetails(long id, String name, Status status){
User user = userRepository.getOne(id);
user.setName(name);
user.setStatus(status);
userRepository.update(user);
}
}
StatusCode
@Entity(name = "status")
public class StatusCode {
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Column(name = "status")
private long status;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getStatusCode() {
return status;
}
public void setStatusCode(String statusCode) {
this.status = statusCode;
}
}
User
中,Status
使用setter和getter@OneToOne(cascade = CascadeType.ALL)
private StatusCode statusCode;
public void setStatus(Status status){
StatusCode temp = new StatusCode();
temp.setStatusName(status.name());
temp.setId(status.getCode());
this.setStatus(temp);
}
public Status getStatus(){
if statusCode != null{
return Satus.valueOf(statusCode.getName())}
return null;
}
储存库:
public interface UserRepository extends JpaRepository<User, Long> {
}
方法getOne()
和update()
从JpaReposytory干扰酶扩展而来。
https://stackoverflow.com/questions/52744889
复制