Код: Выделить всё
@Test
@Sql(statements="delete from payment_line_items", executionPhase=Sql.ExecutionPhase.AFTER_TEST_METHOD)
@Sql(statements="delete from payment", executionPhase=Sql.ExecutionPhase.AFTER_TEST_METHOD)
public void testCreateBasicPayment() throws Exception {
Payment payment = ModelTestingToolbox.generatePayment();
HttpHeaders headers = new HttpHeaders();
headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));
headers.setContentType(MediaType.APPLICATION_JSON);
headers.set("Authorization", "token");
HttpEntity
entity = new HttpEntity(payment, headers);
ResponseEntity response = restTemplate.postForEntity(baseUrl, entity, Payment.class);
assert response.getStatusCode().is2xxSuccessful();
Payment created = response.getBody();
// these assertions pass, but amount and currency code are set in the POSTed object
assert created.getCardInfo() == null;
assert created.getAmount().compareTo(payment.getAmount()) == 0;
assert created.getCurrencyCode().equals(payment.getCurrencyCode());
// these assertions fail, and the fields are either autogenerated or set in the service
assert created.getId() != null;
assert created.getTransId() != null;
}
< /code>
Соответствующие биты платежа: < /p>
@Entity @Table(name="payment")
@JsonInclude(Include.NON_NULL)
@Data
@FieldDefaults(level=AccessLevel.PRIVATE)
@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
public class Payment {
@Id
@GeneratedValue
@JsonProperty(access=Access.READ_ONLY)
UUID id;
@JsonProperty(access=Access.READ_ONLY)
String transId;
@NotNull
@JsonSerialize(using=BigDecimalSerializer.class)
BigDecimal amount;
@NotNull
String currencyCode;
...
}
Код: Выделить всё
@Service
@NoArgsConstructor
public class PaymentService {
@Autowired
PaymentRepository repository;
public Payment createPayment(Payment payment) {
// do business logic, submit payment, etc.
payment.setTransId(tid);
payment.setCardInfo(null); // set payment info to null so it isn't included in response
return repository.saveAndFlush(payment);
}
}
Подробнее здесь: https://stackoverflow.com/questions/796 ... te-why-are