Конечная точка API POST Spring загрузки, возвращающая нулевое значение для внешнего ключаJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Конечная точка API POST Spring загрузки, возвращающая нулевое значение для внешнего ключа

Сообщение Anonymous »

Блог.java

Код: Выделить всё

package com.project.BlogSpot.Entity;

import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Entity
@Data
@AllArgsConstructor
@NoArgsConstructor
@Table(name="articles")
public class Blog {

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(insertable=false, updatable=false)
private int id;

@Column(name="title")
private String title;

@Column(name="content")
private String content;

@Column(name="comments")
private String comments;

@Column(name="likes")
private int likes;

@ManyToOne
@JoinColumn(name="user_id")
private Users user;

public Blog(int id, String title, String content, String comments, int likes, Users user_id) {
super();
this.id = id;
this.title = title;
this.content = content;
this.comments = comments;
this.likes = likes;
this.user = user_id;
}

public Blog() {}

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public String getTitle() {
return title;
}

public void setTitle(String title) {
this.title = title;
}

public String getContent() {
return content;
}

public void setContent(String content) {
this.content = content;
}

public String getComments() {
return comments;
}

public void setComments(String comments) {
this.comments = comments;
}

public int getLikes() {
return likes;
}

public void setLikes(int likes) {
this.likes = likes;
}

public Users getUser_id() {
return user;
}
public void setUser_id(Users user_id) {
this.user = user_id;
}
}
Users.java

Код: Выделить всё

package com.project.BlogSpot.Entity;

import java.util.List;

import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;

import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Table;

@Entity
@Table(name="bloggers")
public class Users {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;

@Column(name = "user_name", nullable = false, length = 20)
private String userName;

@Column(name = "user_pwd", nullable = false, length = 15)
private String userPwd;

@Column(name = "connected_users", columnDefinition = "JSON")
private String connectedUsers; // Stored as JSON in the database

// Helper method to convert connectedUsers JSON to List
public List getConnectedUsersList() {
ObjectMapper mapper = new ObjectMapper();
try {
return mapper.readValue(this.connectedUsers, new TypeReference() {});
} catch (Exception e) {
throw new RuntimeException("Error parsing JSON", e);
}
}
public void setConnectedUsersList(List  users) {
ObjectMapper mapper = new ObjectMapper();
try {
this.connectedUsers = mapper.writeValueAsString(users);
} catch (Exception e) {
throw new RuntimeException("Error converting List to JSON", e);
}
}

public Users(int id, String userName, String userPwd, String connectedUsers) {
super();
this.id = id;
this.userName = userName;
this.userPwd = userPwd;
this.connectedUsers = connectedUsers;
}

public Users() {}

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public String getUserName() {
return userName;
}

public void setUserName(String userName) {
this.userName = userName;
}

public String getUserPwd() {
return userPwd;
}

public void setUserPwd(String userPwd) {
this.userPwd = userPwd;
}

public String getConnectedUsers() {
return connectedUsers;
}

public void setConnectedUsers(String connectedUsers) {
this.connectedUsers = connectedUsers;
}
}
BlogService.java

Код: Выделить всё

    @Autowired
public BlogRepository blogRepository;

public void addBlog(Blog blog) {
if (blog.getUser_id() != null && blog.getUser_id().getId() != 0) {
// Fetch the User object from the database using the user ID
Users user = userRepository.findById(blog.getUser_id().getId())
.orElseThrow(() -> new RuntimeException("User not found"));

// Set the user in the blog object
blog.setUser_id(user);
} else {
throw new RuntimeException("User ID is missing or invalid");
}
blogRepository.save(blog);
}
BlogController.java

Код: Выделить всё

    @Autowired
public BlogService service;

@PostMapping("/add")
public void addBlog(Blog blog) {
service.addBlog(blog);
}
Я столкнулся с внутренней ошибкой сервера 500 при попытке добавить объект блога со ссылкой на пользователя в моем приложении Spring Boot. Возвращается сообщение об ошибке:
"message": "Идентификатор пользователя отсутствует или недействителен",
"path": "/blogs/add"
получается поднято.
Во время отладки пользователь возвращает значение null.
Пожалуйста, помогите!

Подробнее здесь: https://stackoverflow.com/questions/793 ... oreign-key
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Конечная точка API POST Spring загрузки, возвращающая нулевое значение для внешнего ключа
    Anonymous » » в форуме JAVA
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Конечная точка API POST Spring загрузки, возвращающая нулевое значение для внешнего ключа
    Anonymous » » в форуме JAVA
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Конечная точка API не работает по запросу POST
    Anonymous » » в форуме C#
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Конечная точка API не работает для запроса POST
    Anonymous » » в форуме C#
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Конечная точка API не работает для запроса POST
    Anonymous » » в форуме C#
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»