Tôi có thể đã gặp trường hợp tương tự khi tôi muốn Spring Data JPA @CreatedDate
chú thích hoạt động, nhưng không cần kiểm tra cấp độ người dùng được mô tả khác trong tài liệu của họ.
Để kiểm tra dựa trên chú thích hoạt động, tôi vẫn phải thêm một lớp vào dự án của mình đã triển khai org.springframework.data.domain.AuditorAware
. Điều này thật kỳ lạ vì dường như bạn không thực sự sử dụng giá trị được trả về từ getCurrentAuditor()
phương pháp mà bạn sẽ triển khai; của tôi chỉ trả về null
.
public class NullAuditorBean implements AuditorAware {
@Override
public Object getCurrentAuditor() {
return null;
}
}
Sau đó, tôi cần tham chiếu đến "đối tượng null" AuditorAware
của mình triển khai trong một mục nhập trong applicationContext
của tôi để kích hoạt kiểm tra JPA. Tôi phải đảm bảo rằng tôi đã làm điều này trước dòng chỉ định jpa:repositories
. Cái này trông giống như sau:
<bean id="auditorBean" class="your.package.subbed.here.NullAuditorBean"/>
<jpa:auditing auditor-aware-ref="auditorBean"/>
Tôi cũng phải thêm orm.xml
và cần thiết để chính thức tham chiếu nó như một thuộc tính của entityManagerFactory
của tôi bean, như vậy:
<property name="mappingResources">
<value>META-INF/orm.xml</value>
</property>
Đảm bảo rằng META-INF/orm.xml
này mục nhập được lưu trữ cùng với đầu ra biên dịch của bạn (của tôi nằm trong WAR của tôi dưới WEB-INF/classes
.
orm.xml
đó tệp, đối với bản ghi, chứa một số bản soạn sẵn, có thể tìm thấy trong câu trả lời cho câu hỏi liên quan này.
Đó là một khối lượng công việc hợp lý khi tôi làm việc này. Bạn có thể thích giải pháp làm việc trước đây của mình!