- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下 JPA 实体:
@EntityListeners(AuditingEntityListener.class)
@Entity
public class EntityWithAuditingDates {
@Id
@GeneratedValue
private Long id;
@Temporal(TemporalType.TIMESTAMP)
@CreatedDate
private Date createdDate;
@Temporal(TemporalType.TIMESTAMP)
@LastModifiedDate
private Date lastModified;
private String property;
// getters and setters omitted.
}
以及以下 CrudRepository:
@Service
public interface EntityWithAuditingDatesRepository extends CrudRepository<EntityWithAuditingDates, Long> {
}
以及以下测试:
@SpringApplicationConfiguration(classes = FooApp.class)
@RunWith(SpringJUnit4ClassRunner.class)
public class AuditingEntityListenerTest {
@Autowired
private EntityWithAuditingDatesRepository entityWithAuditingDatesRepository;
@Test
public void test() {
EntityWithAuditingDates entityWithAuditingDates = new EntityWithAuditingDates();
entityWithAuditingDates.setProperty("foo");
assertNull(entityWithAuditingDates.getCreatedDate());
assertNull(entityWithAuditingDates.getLastModified());
entityWithAuditingDatesRepository.save(entityWithAuditingDates);
assertNotNull(entityWithAuditingDates.getCreatedDate());
assertNotNull(entityWithAuditingDates.getLastModified());
assertEquals(entityWithAuditingDates.getLastModified(), entityWithAuditingDates.getCreatedDate());
entityWithAuditingDates.setProperty("foooo");
entityWithAuditingDatesRepository.save(entityWithAuditingDates);
assertNotEquals(entityWithAuditingDates.getCreatedDate(), entityWithAuditingDates.getLastModified());
}
}
最后一个条件不成立。更新实体后 createdDate 和 lastModifiedDate 不应该不同吗?
谢谢!
最佳答案
我遇到了同样的问题,但现在找到了解决方法。在@Column 上,我设置了 updatable=false 以在更新时排除 create* 字段。
@CreatedBy
@NotNull
@Column(name = "created_by", nullable = false, length = 50, updatable = false)
private String createdBy;
@CreatedDate
@NotNull
@Column(name = "created_date", nullable = false, updatable = false)
private ZonedDateTime createdDate = ZonedDateTime.now();
@LastModifiedBy
@Column(name = "last_modified_by", length = 50)
private String lastModifiedBy;
@LastModifiedDate
@Column(name = "last_modified_date")
private ZonedDateTime lastModifiedDate = ZonedDateTime.now();
关于java - Spring-Data-Jpa AuditingEntityListener createdDate 在保存现有实体时更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33500860/
我有一个实体,想要实现 Audit 和 AuditHistory,两者都有效,但在单元测试时应用程序上下文为空。 实体 @Setter @Getter @NoArgsConstructor @AllA
我在各自的字段上使用了@CreatedBy、@CreatedDate、@LastModifiedBy 和@LastModifiedDate 注释。通过使用@MappedSuperclass、@Enti
我有以下 JPA 实体: @EntityListeners(AuditingEntityListener.class) @Entity public class EntityWithAuditingD
我正在使用 JPA 和 Spring 的一部分(如事务管理、JPA 存储库),但我不使用 Spring 进行依赖注入(inject),而是将 Spring 部分视为 POJO 对象。到目前为止,它运行
我没有成功为我的 JPA 应用程序设置 CET 时区,该应用程序使用 AuditingEntityListener 来增加创建/上次修改日期。 我已经尝试过的事情: 在我的 application.p
我是一名优秀的程序员,十分优秀!