我想避免“双向< code>@OneToMany”关联,因为:
@OneTo众多
为此,我使用了本教程,其中描述了“Just@ManyToOne
”关联,但不幸的是,它只给出了一行与此相关的代码:
List<PostComment> comments = entityManager.createQuery(
"select pc " +
"from PostComment pc " +
"where pc.post.id = :postId", PostComment.class)
.setParameter( "postId", 1L )
.getResultList();
所以,我有很多问题:
>
我应该在哪里使用这条线?
我应该如何以及在哪里获得EntityManager?到底在实体中?是一个好的解决方案吗?
如何避免使用< code>EntityManager?我已经看了这个问题和其他问题,但不幸的是它们没有帮助我。
我有Post
作为父实体和Comment
作为子实体。一个帖子可以有很多评论。代码:
如果我在< code >注释中使用它:
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "post_id")
private Post post;
在< code>Post中:
private Set<Comment> comments;
因此,我删除了<code>@OneToMany</code>正如上面提到的教程所说,我得到了:
MappingException: Could not determine type for: java.util.List, at table: post, for columns: [org.hibernate.mapping.Column(comments)]
那么,我如何使用“Just @ManyToOne
”关联(或其他方便的东西)来控制评论
的大小和分页?
您可以通过使用Spring数据的
JpaRepository
来避免使用EntityManager。JpaRepository
带有内置方法页面
祝你好运
编辑:另外,关于第4点:
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "post_id")
private Post post;
在这里,你基本上是说一条评论可以有很多帖子,而不是反过来说(一条帖子可以有很多评论)。
我找到了不完美,但对我来说最正确的解决方案。
帖子:
@Entity(name = "Post")
public class Post {
//...
@Transient
private List<PostComment> comments;
public void addComment(PostComment comment) {
comments.add(comment);
comment.setPost(this);
}
public void removeComment(PostComment comment) {
comments.remove(comment);
comment.setPost(null);
}
public void clearComments(){
comments.clear();
}
public List<PostComment> getComments() {
return comments;
}
public void setComments(List<PostComment> comments) {
this.comments = comments;
}
}
后评论:
@Entity(name = "PostComment")
public class PostComment {
//...
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "post_id")
private Post post;
public Post getPost() {
return post;
}
public void setPost(Post post) {
this.post = post;
}
}
PostCommentServiceImpl:
@Service
public class PostCommentServiceImpl {
@Autowired
private PostCommentRepository repository;
//...
public void setCommentsInPost(Post post, int first, int size){
Pageable pageRequest = new PageRequest(first, size);
Page<PostComment> pageOfPostComment = repository.findByPostId(post.getId(), pageRequest);
post.setComments(pageOfPostComment.getContent());
}
}
控制器:
@Controller
public class PostController {
@Autowired
private PostCommentService postCommentService;
@Autowired
private PostService postService;
//...
@RequestMapping(value = "/something", method = RequestMethod.GET)
public void foo() {
Post post = postService.findById(1L);
postCommentService.setCommentsInPost(post,0,10);
//...
}
//...
}
问题内容: 我通过使用本教程学习Spring,Hibernate,Maven:Chad Lung:一个使用Netbeans 7,JUnit,Maven,HSQLDB,Spring和Hibernate的项目 。可以,但是我需要建立一对多关系(一个雇员有很多任务)。我已经尝试了许多示例,但仍然不知道如何使代码正常工作: Employee.java: Task.java: db-config.xml:
关联分析 关联分析是一种在大规模数据集中寻找有趣关系的任务。 这些关系可以有两种形式: 频繁项集(frequent item sets): 经常出现在一块的物品的集合。 关联规则(associational rules): 暗示两种物品之间可能存在很强的关系。 相关术语 关联分析(关联规则学习): 从大规模数据集中寻找物品间的隐含关系被称作 关联分析(associati analysis) 或者
我试图使用一个GridBagLayout有一个JFrame,其中包含一个具有网格布局的JPanel和一个只有一个大按钮的JPanel。我希望所有的行都是相同的大小,并且带有JButton的JPanel与一行的大小相同。然而,按钮面板目前是空的,大约是JFrame的1/3。我不太确定发生了什么,但是维护这个结构对我来说非常重要,因为我的代码的其余部分都使用了这个结构。任何帮助都很感激,并提前感谢您。
我煞费苦心地创建了一个搜索图标,并将其导出为svg。这现在出现在一个网站的标题上,但我正试图让css控制它的大小和颜色,这样我就可以相应地调整图标的大小,匹配网站上文本的颜色,并且当用户滚动图标时,还会有某种滚动颜色的变化或变亮/变暗。我不想使用内联svg,但我很乐意使用下面的img-src或对象技术。 如果不使用javascript,我如何控制颜色和大小。 我尝试过创建一个css类“search
我从书中得到了以下代码https://hamednourhani.gitbooks.io/typescript-book/ 问题(--strictNullChecks): 为什么表达式中的2个函数有不同的类型?我预计在这两种情况下,s都不会是 为什么区域2函数希望返回类型为未定义的编号?在我看来,这里永远不会发生未定义的事情。我错了吗
我用PHPass散列密码已经很久了。我承认仍然有一些我不完全理解(或忽略)的东西来正确地散列密码,所以今天我查看了所有我能找到的关于它的信息。 回顾PHPass文档,我已经进入了这个: 除了实际的哈希之外,phpass 在对新密码或密码进行哈希处理时会透明地生成随机 salt,并将哈希类型、salt 和密码拉伸迭代计数编码到它返回的“hash 编码字符串”中。当phpass根据存储的哈希对密码或密