我是Spring的新手,我对@CreatedDate注释在实体中的工作方式感到困惑。
我做了一个谷歌搜索,有很多解决方案,但是除了一个解决方案,它们对我都不起作用。我很困惑为什么?
这是我首先尝试的
@Entity
@EntityListeners(AuditingEntityListener.class)
public class User implements Serializable {
@Id
@GeneratedValue
private Long id;
private String name;
@CreatedDate
private Date created;
public User(String name) {
this.name = name;
}
public User() {
}
那没起效。对于created
列中的值,我得到了NULL 。
然后我做到了。
@Entity
@EntityListeners(AuditingEntityListener.class)
public class User implements Serializable {
@Id
@GeneratedValue
private Long id;
private String name;
@CreatedDate
private Date created = new Date();
public User(String name) {
this.name = name;
}
public User() {
}
这实际上将时间戳存储在数据库中。我的问题是我遵循的大多数教程都建议我不需要new Date()
获取当前时间戳。看起来我确实需要那个。我有什么想念的吗?
@CreatedDate
如果仅放置@EntityListeners(AuditingEntityListener.class)
实体,则无法单独使用。为了工作,您必须做一些更多的配置。
假设在您的数据库中,字段@CreatedDate
为String类型,并且您想返回当前登录的用户作为的值@CreatedDate
,然后执行以下操作:
public class CustomAuditorAware implements AuditorAware<String> {
@Override
public String getCurrentAuditor() {
String loggedName = SecurityContextHolder.getContext().getAuthentication().getName();
return loggedName;
}
}
您可以在此处编写任何适合您需求的功能,但是您肯定必须有一个引用实现AuditorAware的类的Bean。
同样重要的第二部分是创建一个返回带有注解的类的Bean @EnableJpaAuditing
,如下所示:
@Configuration
@EnableJpaAuditing
public class AuditorConfig {
@Bean
public CustomAuditorAware auditorProvider(){
return new CustomAuditorAware();
}
}
如果您的毒药是XML配置,请执行以下操作:
<bean id="customAuditorAware" class="org.moshe.arad.general.CustomAuditorAware" />
<jpa:auditing auditor-aware-ref="customAuditorAware"/>
我是Spring的新手,我很困惑@CreatedDate注释在实体中是如何工作的。 我做了一次谷歌搜索,有很多解决方案,但除了一个,没有一个适合我。我很困惑为什么? 这是我先试的 它不起作用。我为列中的值获取了NULL。 然后我做了这个。 这实际上将时间戳存储在db中。我的问题是,我遵循的大多数教程都建议我不需要来获取当前时间戳。看起来我确实需要它。我缺少什么吗?
我有一个简单的实体,我想让“createdDate”自动分配。 同样在文档中描述的,我还在CassandraConfig中添加了注释“@EnableCassandra Auditing”: 但它仍然不起作用。实体是用createdDate=null创建的。感谢您的帮助。
我试图让RunWith(PowerMockRunner.class)处理我现有的包注释。 版本: Powermock 1.4.12 mockito 1.9.0 jUnit 4.8.2 package-info.java//这是包注释 测试说明。java//这是包“com.smin.dummy”的元数据注释类 A、 爪哇 莫卡。Java语言 在unitest MockA中。如果我不使用RunWith
环境:科特林 1.5.30, 春靴 2.5.4(Spring 5.3.9) 我试图创建一个组合注释来简化类似的模板注释代码。注释类如下: 预期用法: application.yaml: 但在应用程序启动后,TheBean 未按预期注册。 > 首先,我在github spring存储库中搜索,发现了这个:回归:自定义组合@Profile注释,组件扫描不再支持没有运行时保留。所以我试图但没有效果。 尝
错误在此输入图像描述 我试图发送事件的通知,当一些喜欢和评论他的帖子,通知评论和喜欢在这里工作是我的通知类。 我的控制器功能代码,用于通知评论 我的请求
Spring参考文档说明如下: ComponentScanPackageMarker类故意省略了@Configuration注释。我已经测试了组件扫描和自动连接功能。令我吃惊的是,一切都很顺利: 组件扫描的这种行为是故意的吗?为什么即使没有@Configuration注释也能工作?
在编译过程中,我遇到一个错误:“注释类型不适用于这种声明”。和细节: 我使用JDK 1.6.18和@XmlElement在这个版本中不可用。我发现JAXB(它的版本)中的主要问题。它在这里被讨论: XmlElement注释用WebParam脱盐 是否可以替换JAXB实现在JavaJRE 1.6 SE中的版本?。 我使用认可的方法($JAVA_HOME/lib/认可)更新了JDK中的JAXB,但它仍
我没有正确使用注释吗? 编译错误: 注释工作正常,可以毫无问题地访问该网页。