code: @Override
  	public Long queryFrom(MonetaryAmount amount) {
  		Objects.requireNonNull(amount, "Amount required.");
  		int fractionDigits = amount.getCurrency().getDefaultFractionDigits();
  		BigDecimal number = amount.getNumber().numberValue(BigDecimal.class);
  		return number.setScale(fractionDigits, RoundingMode.DOWN)
  		        .remainder(BigDecimal.ONE)
  		        .movePointRight(fractionDigits).longValue();
  	}
docs: Extract the minor part of a {@code MonetaryAmount} with the same scale.
  
  This returns the monetary amount in terms of the minor units of the
  currency, truncating the whole part if necessary. For example, 'EUR 2.35'
  will return 35, and 'BHD -1.345' will return -345.
  
  This is returned as a {@code MonetaryAmount} rather than a
  {@code BigDecimal} . This is to allow further calculations to be
  performed on the result. Should you need a {@code BigDecimal}, simply
  call {@code asType(BigDecimal.class)}.
  @return the minor units part of the amount, never {@code null}