使用sping-boot-starter-data-mongob时,包含和使用JPA实体生命周期事件
的正确方法是什么?
我的pom。xml依赖项
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
我的类路径没有看到以下任何JPA注释:
@PrePersist
@PostPersist
@PreRemove
@PostRemove
@PreUpdate
@PostUpdate
@PostLoad
Mongo有自己的事件记录在@#Entity回调中。
例子:
class DefaultingEntityCallback implements BeforeSaveCallback<Person>, Ordered {
@Override
public Object onBeforeSave(Person entity, String collection) {
if(collection == "user") {
return // ...
}
return // ...
}
@Override
public int getOrder() {
return 100;
}
}
提供以下功能接口:
> < Li > < p > org . spring framework . data . MongoDB . core . mapping . event . afterconvertcallback
org.springframework.data.mongodb.core.mapping.event.AfterSave回调
org . spring framework . data . MongoDB . core . mapping . event . beforecovertcallback
org.springframework.data.mongodb.core.mapping.event.之前保存回调
org . spring framework . data . MongoDB . core . mapping . event . reactiveafterconvertcallback
org.springframework.data.mongodb.core.mapping.event.ReactiveAfterSaveCallback
org.springframework.data.mongodb.core.mapping.event.ReactiveBeforeConvertCallback
org.springframework.data.mongodb.core.mapping.event.ReactiveBeforeSaveCallback
问题内容: 我在StackOverflow上遇到了类似的问题,尝试了解决方案,但没有找到答案。 我正在使用一种相当通用的JPA策略来设置某些实体的上次修改时间。设置列和字段,然后使用标记方法,并将其设置为等于当前时间。 问题是,我可以在调试器中看到正在调用该方法并且该字段正在更新,但是在我的数据库日志中,我仅看到一个SQL调用,以UPDATE更改字段,其中不包含timestamp字段的UPDATE
我有带有嵌套文档注释的帖子集合。简单的文档模式如下所示: 我只想投射所要求的评论。我找到了一个可以接受的解决方案。(也只欢迎使用注释对象返回解决方案) 然后我尝试将其应用于带有查询注释的mongoDB存储库接口。 但我得到了演员特例。有没有更好的方法来使用spring data mongodb实现这一点?
问题内容: 以下是对问题的后续问题: 我正在使用version 。如果所有成员变量都是基本类型,即使使用和注释,参数的名称与成员变量的名称不完全匹配,我也可以保留该对象。 但是,当我尝试保留包含其他对象的对象时,我得到了提示。我的问题: 这是错误,还是我做错了什么? 为了使我可以正确地持久化包含对象的对象,需要进行哪些更改? 。 我和班级如下: 更新:奇怪的是,将注释中的字符串更改为“属性”以外的
问题内容: 我已经打了一个拦截器将修复到现有project.the主要问题是,我一定会喜欢使用,并在照顾使用Hibernate实现JPA与会议现场(INSERT和UPDATE)。 原因? :需要进行此更改,因为有必要使用,而且我知道(因为我之前已经遇到过),liquibase使用默认的current_timestamp将时间戳转换为datetime,对于MySQL数据库来说太糟糕了。 所以我需要一
问题内容: 我已经打了一个拦截器将修复到现有project.the主要问题是,我一定会喜欢使用,并在照顾使用Hibernate实现JPA与会议现场(INSERT和UPDATE)。 原因? :需要进行此更改,因为有必要使用,而且我知道(因为我之前已经面对过),liquibase使用默认的current_timestamp将时间戳转换为日期时间,这对于mysql数据库来说太糟糕了。 所以我需要一种在代
我正在实施一个项目与rest web service和mongoDB,我将是有用的使用JPA数据库操作。当然,我需要使用Hibernate?,这将是其他一些较轻的框架的最佳选择。数据库是小的几个实体,但许多记录,如果可能的话还会插入图像,如果OpenShift允许的话。在这种情况下,最好用作框架持久性?