Spring Boot CrudRepository能够读取但不能写

时间:2017-04-26 08:14:38

标签: spring hibernate spring-boot spring-data-jpa discord

所以我在过去的两天里一直在一个非常简单的网站上工作,但我认为以某种方式将网站与Discord机器人联系起来会很简洁。对于Discord bot部分,我一直在使用JDA库。

我遇到的问题是我似乎无法使用save方法。但是,findByIdfindAll似乎完全正常。我可以在下面找到我的代码设置方式。

@Controller
public class IndexController extends ListenerAdapter {

    private static boolean botStarted = false;

    @Autowired
    private NewsPostRepository newsPostRepository;

    @GetMapping("/")
    public String getIndex(ModelMap map) {

        // TODO: add news post images.
        NewsPost savedNewsPost = newsPostRepository.save(new NewsPost("Controller", "Posted through controller",
                new byte[]{}, new Date(), true));

        System.out.println(savedNewsPost);

        return "index";
    }

    @GetMapping("/start")
    public String startBot() {

        if (!botStarted) {
            try {
                JDA jda = new JDABuilder(AccountType.BOT)
                        .setToken("my-token")
                        .addEventListener(this)
                        .buildBlocking(); // Blocking vs async
            } catch (LoginException e) {
                e.printStackTrace();
            } catch (RateLimitedException e) {
                e.printStackTrace();
            } catch (InterruptedException e) {
                e.printStackTrace();
            } finally {
                botStarted = true;
            }
        }

        return "redirect:/";
    }

    @Override
    public void onMessageReceived(MessageReceivedEvent messageReceivedEvent) {

        User author = messageReceivedEvent.getAuthor();
        MessageChannel channel = messageReceivedEvent.getChannel();
        Message message = messageReceivedEvent.getMessage();

        if (!author.isBot()) {
            if (message.getContent().startsWith("!news")) {
                NewsPost savedNewsPost = newsPostRepository.save(new NewsPost("Discord", "Posted through Discord",
                        new byte[]{}, new Date(), true));

                System.out.println(savedNewsPost);
            }
        }
    }
}

存储库:

public interface NewsPostRepository extends CrudRepository<NewsPost, String> {
}

奇怪的是,当我进入索引页面时,NewsPost保存得非常好,并且在数据库中可见。

当我尝试使用Discord bot添加NewsPost时,它会以与索引方法相同的方式返回一个对象,其ID不为空且应该可用于查找然而,在数据库中,这个条目无处可寻。也没有例外。请注意,这两个save()调用都是相同的。

我尝试使用服务并添加@Transactional,但到目前为止还没有任何效果。

0 个答案:

没有答案