我有一个事务性的警报表和一个主警报类型表。每当向表中添加警报时,我都想发送一封电子邮件,所以我想我应该使用PrePersist。但是,在我的电子邮件中,我想包含一些包含在警报类型表中的信息。
我试图在Alert类中添加对AlertTypeRepository的引用,但无法添加,因为我的Alert类是@表,而AlertTypeRepository不是列。
下面是我的警觉课
@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类访问其相应的页眉和页脚。
最佳答案
我想出了一个解决办法,所以我希望这能帮助任何面临类似问题的人。基本上,我必须创建一个EntityListener到Alert类,然后添加以下类。
@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();
}
}