如何解决如何使可嵌入类的 id 与 spring 数据 jpa 一起唯一,以便不能输入重复项
我有 3 个表 User
、Book
和 Review
。 Review
有一个 EmbeddedId,我想让它独一无二,这样就不会出现重复评论一本书的用户。提前致谢。
@Entity
public class Review {
@EmbeddedId
private ReviewCompositKey id;
// ....
}
@Embeddable
public class ReviewCompositKey implements Serializable {
private static final long serialVersionUID = 1L;
private Long userId;
private Long bookId;
// ....
}
@Override
public void run(String... args) throws Exception {
User user = new User("John","Doe","john@example.com","testpass","admin",true);
user = userRepository.save(user);
List<String> authors = Arrays.asList("Blake","Jane");
Book book = new Book("Just A Trial","123456789abc","1940",authors);
book = bookRepository.save(book);
Review review = new Review(new ReviewCompositeKey(user.getId(),book.getId()),(byte)4,"First Title");
review = reviewRepository.save(review);
Review review1 = new Review(new ReviewCompositeKey(user.getId(),"First Title");
review1 = reviewRepository.save(review1);
}
解决方法
代码很好,在遍历 Reviews 表后,我只有一个相同评论的实例,它没有复制它们。我感到困惑的原因是我期望它在用户尝试复制评论时抛出异常。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。