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

Spring Data JPA - 列名と値をパラメーターとして渡す

    sping データ仕様 .そこで解決策を見つけることができます!
    ドキュメントを読むと、Calendar の場合がわかります あなたのドメインです(私は自分のドメインの別の名前を見つけようとします.
    カレンダー Java SE のクラスは既に)、上記のようなものを使用できます。

    @Repository
    public interface CalendarRepository extends JpaRepository<Calendar, Integer>, JpaSpecificationExecutor<Calendar> {
    }
    
    
    public class CalendarSpecification implements Specification<Calendar> {
    
        private String randomColumnName; // A varchar column.
        private String valueToSearchFor;
    
        public CalendarSpecification(String randomColumnName, String valueToSearchFor) {
            this.randomColumnName = randomColumnName;
            this.valueToSearchFor = valueToSearchFor;
        }
    
        @Override
        public Predicate toPredicate(Root<Calendar> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
            return builder.and(builder.equal(root.<String>get(this.randomColumnName), this.valueToSearchFor));
        }
    }
    
    
    @Service
    public class CalendarService {
    
        @Autowired
        private CalendarRepository calendarRepository;
    
        public List<Calendar> findCustom(String randomColumnName, String valueToSearchFor) {
            CalendarSpecification cs = new CalendarSpecification(randomColumnName, valueToSearchFor);
            return calendarRepository.find(cs);
            // Or using lambda expression - without the need of CalendarSpecification class.
    //      return calendarRepository.find((Root<ProductCategory> root, CriteriaQuery<?> query, CriteriaBuilder builder) -> {
    //          return builder.and(builder.equal(root.<String>get(randomColumnName), valueToSearchFor));
    //      });
        }
    }
    


    1. @SQLInsertと重複キーでHibernate

    2. Ruby on Railsのインストールの問題(Windows)

    3. Windowsプラットフォームでmysql_connect(localhost / 127.0.0.1)が遅い

    4. ASP.NETMVCアプリケーションにMicrosoft.SqlServer.Management.Commonを追加できません