sql >> データベース >  >> RDS >> PostgreSQL

SpringData@CreatedDateアノテーションが機能しません

    Spring Data JPA @CreatedDateが必要だったのと同じような状況にあった可能性があります。 アノテーションは機能しますが、ドキュメントに記載されているユーザーレベルの監査は必要ありませんでした。

    アノテーションベースの監査を機能させるには、それでも、org.springframework.data.domain.AuditorAwareを実装したクラスをプロジェクトに追加する必要がありました。 。 getCurrentAuditor()から返された値を実際には使用していないように見えるため、これは奇妙なことです。 実装するメソッド。私はnullを返すだけです 。

    public class NullAuditorBean implements AuditorAware {
    
        @Override
        public Object getCurrentAuditor() {
            return null;
        }
    }
    

    次に、「nullオブジェクト」AuditorAwareを参照する必要がありました。 applicationContextのエントリでの実装 JPA監査をアクティブにします。 jpa:repositoriesを指定する行の前にこれを行ったことを確認する必要がありました 。これは次のようになります:

    <bean id="auditorBean" class="your.package.subbed.here.NullAuditorBean"/>
    <jpa:auditing auditor-aware-ref="auditorBean"/>
    

    orm.xmlも追加する必要がありました ファイルであり、entityManagerFactoryのプロパティとして正式に参照する必要があります 豆、そのように:

    <property name="mappingResources">
        <value>META-INF/orm.xml</value>
    </property>
    

    このMETA-INF/orm.xmlを確認してください エントリはコンパイル出力とともに保存されます(私のWARのWEB-INF/classesにあります 。

    そのorm.xml 記録のために、ファイルには、この関連する質問への回答にある定型文が含まれていました。

    私がこれを動かしたとき、それはかなりの量の仕事でした。以前の実用的なソリューションをお勧めします!



    1. 給与表から3番目またはnᵗʰの最大給与を見つける方法は?

    2. &を含む文字列を挿入する方法

    3. T-SQL(sp_tables)を使用してSQLServerのテーブルとビューのリストを返す

    4. MySQLデータベースが保護されていることを確認する方法