Spring Boot jpa Postgres @convert обновление запроса выполняется автоматически - PullRequest
0 голосов
/ 21 декабря 2018

При использовании аннотации @convert jpa для преобразования типа Postgres json в объект в Java возникает странная проблема.Я написал ниже в своем классе сущностей.

@Entity
@Table(name = "orders")
public class OrderEntity implements Serializable {
@Column(name = "address")
    @Convert(converter = AddressConverter.class)
    private Address address;
}

AddressConverter.java:

@Converter(autoApply = false)
public class AddressConverter implements AttributeConverter<Address, String> {

private final static ObjectMapper objectMapper = new ObjectMapper();

@Override
 public String convertToDatabaseColumn(Address attribute) {
    try {
        List<Address> add = new ArrayList<>();
        add.add(attribute);
        return objectMapper.writeValueAsString(add);
    } catch (JsonProcessingException e) {
        e.printStackTrace();
    }
    return null;
}

@Override
public Address convertToEntityAttribute(String dbData) {

    try {
        if (dbData != null) {
            if (dbData.startsWith("{")) {
                return objectMapper.readValue(dbData, Address.class);
            } else {
                List<Address> items = objectMapper.readValue(dbData, new TypeReference<List<Address>>() {
                });
                if (items != null && items.size() > 0)
                    return items.get(0);
            }
        }
    } catch (JsonParseException e) {
        e.printStackTrace();
    } catch (JsonMappingException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return null;
}

Я получаю правильный результат при извлечении записей из Postgres в ордерентность.Теперь в конце моего метода я выполняю запрос на обновление другой таблицы, чтобы изменить ее значение, но в то же время моя таблица заказов также обновляется.В запросе я вижу все запросы на обновление, выполняемые в это время.

Однако я не написал ничего, чтобы обновить свою таблицу заказов.

Когда я комментирую свой запрос на обновление другой таблицы, эта сущность заказа времени также не обновляется.Даже если я удаляю аннотацию @convert, обновление также не выполняется.

Как предотвратить этот запрос на обновление, который автоматически выполняется для всех извлеченных записей, когда я обновляю что-то в другой таблице?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...