@Test
//setField(null) не то же самое что не делать set
public void binaryNullField() {
final IgniteCache<BinaryObject, BinaryObject> binaryView = ignite.createCache(
new CacheConfiguration<BinaryObject, BinaryObject>("binaryTest")
.setWriteSynchronizationMode(CacheWriteSynchronizationMode.FULL_SYNC)
.setAtomicityMode(CacheAtomicityMode.ATOMIC)
).withKeepBinary();
final IgniteCache<NumbersPojo, NumbersPojo> typedView = ignite.cache("binaryTest");
binaryView.put(
ignite.binary().builder(NumbersPojo.class.getName())/* */.setField("aDouble", 1d).setField("integer", 1).build(),
ignite.binary().builder(NumbersPojo.class.getName()).build());
binaryView.put(
ignite.binary().builder(NumbersPojo.class.getName()).setField("bigDecimal", null, BigDecimal.class).setField("aDouble", 1d).setField("integer", 1).build(),
ignite.binary().builder(NumbersPojo.class.getName()).build());
binaryView.put(
ignite.binary().builder(NumbersPojo.class.getName()).setField("bigDecimal", null).build(),
ignite.binary().builder(NumbersPojo.class.getName()).build());
typedView.put(new NumbersPojo(), new NumbersPojo());
Assertions.assertThat(binaryView.size()).isEqualTo(4);
binaryView.put(
ignite.binary().builder(NumbersPojo.class.getName()).setField("bigDecimal", null).setField("aDouble", null).setField("integer", null).build(),
ignite.binary().builder(NumbersPojo.class.getName()).build());
Assertions.assertThat(binaryView.size()).isEqualTo(4);
}