Java 我如何在预科生批注中使用JPARepository?
我有一个事务性的警报表和一个主警报类型表。每当向表中添加警报时,我都会发送电子邮件,所以我想我应该使用PrePersist。但是,在我的电子邮件中,我想包括警报类型表中包含的一些信息 我已尝试在Alert类中添加对AlertTypeRepository的引用,但无法添加,因为我的Alert类是@Table,而AlertTypeRepository不是列 下面是我的警觉课Java 我如何在预科生批注中使用JPARepository?,java,postgresql,spring-boot,jpa,spring-data-jpa,Java,Postgresql,Spring Boot,Jpa,Spring Data Jpa,我有一个事务性的警报表和一个主警报类型表。每当向表中添加警报时,我都会发送电子邮件,所以我想我应该使用PrePersist。但是,在我的电子邮件中,我想包括警报类型表中包含的一些信息 我已尝试在Alert类中添加对AlertTypeRepository的引用,但无法添加,因为我的Alert类是@Table,而AlertTypeRepository不是列 下面是我的警觉课 @Entity @Table @Getter @Setter @NoArgsConstructor @AllArgsC
@Entity
@Table
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class Alert {
@Id
@GeneratedValue
int id;
@Column
String name;
@Column
String alertTypeId;
@Column
String detailedMessage;
@Column
String status;
@Temporal(TemporalType.TIMESTAMP)
Date time;
}
下面是我的AlertType类
@Entity
@Table
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class AlertType {
@Id
@GeneratedValue
int id;
@Column
String name;
@Column
String header;
@Column
String footer;
@Column
String summary;
@Column
String deliveryType;
@Column
Boolean active ;
@Column
String recipients;
}
我希望在Alert类中有一个PrePersist函数。这允许我从AlertType类访问其相应的页眉和页脚。我想出了一个解决方案,所以我希望这能帮助任何面临类似问题的人。基本上,我必须为Alert类创建一个EntityListener,然后添加以下类
@Component
public class AlertListener {
static AlertTypeRepository alertTypeRepository;
@Autowired
public void init(AlertTypeRepository alertTypeRepository)
{
this.alertTypeRepository = alertTypeRepository;
}
@PrePersist
public void prePersist(Alert alert) {
List<AlertType> alertType= this.alertTypeRepository.findAll();
}
}
@组件
公共类AlertListener{
静态AlertTypeRepository AlertTypeRepository;
@自动连线
公共void init(AlertTypeRepository AlertTypeRepository)
{
this.alertTypeRepository=alertTypeRepository;
}
@预科生
public void prePersist(警报){
List alertType=this.alertTypeRepository.findAll();
}
}
我想出了一个解决方案,所以我希望这能帮助任何面临类似问题的人。基本上,我必须为Alert类创建一个EntityListener,然后添加以下类
@Component
public class AlertListener {
static AlertTypeRepository alertTypeRepository;
@Autowired
public void init(AlertTypeRepository alertTypeRepository)
{
this.alertTypeRepository = alertTypeRepository;
}
@PrePersist
public void prePersist(Alert alert) {
List<AlertType> alertType= this.alertTypeRepository.findAll();
}
}
@组件
公共类AlertListener{
静态AlertTypeRepository AlertTypeRepository;
@自动连线
公共void init(AlertTypeRepository AlertTypeRepository)
{
this.alertTypeRepository=alertTypeRepository;
}
@预科生
public void prePersist(警报){
List alertType=this.alertTypeRepository.findAll();
}
}
据我所知,有两种方法可以实现归档目的。您的alterType不是由Spring管理的
EntityListener
,并将其应用到您的entity类上,您似乎对此不感兴趣@可配置的注释对实体进行注释:
aspectj
相关JAR添加到项目依赖项中。其次,您可以选择加载时编织或编译时编织来为您的类处理注入
Maven中有一个插件可用于编译时编织(注意,仅针对aspectj编译器Maven插件配置,我在这里没有使用@Configurable。)。我知道有两种方法可用于归档目的。您的alterType不是由Spring管理的
EntityListener
,并将其应用到您的entity类上,您似乎对此不感兴趣@可配置的注释对实体进行注释:
aspectj
相关JAR添加到项目依赖项中。其次,您可以选择加载时编织或编译时编织来为您的类处理注入
Maven中有一个可用于编译时编织的插件(注意,对于aspectj编译器Maven插件配置,我没有在这里使用@Configurable)