ОШИБКА: столбец "изображение" имеет тип bytea, но выражение имеет тип oid в Postgres с использованием Jhipster - PullRequest
0 голосов
/ 24 февраля 2020

Я получаю эту ошибку с приложением Jhipster, развернутым в GAE (Postgres 9.6), которое я не получаю в локальной БД H2:

common frames omitted Caused by: org.postgresql.util.PSQLException: ERROR: column "image" is of type bytea but expression is of type oid

от объекта Фото:

package es.mibar.web.domain;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;

import javax.persistence.*;
import javax.validation.constraints.*;

import java.io.Serializable;
import java.time.Instant;

/**
 * A Photo.
 */
@Entity
@Table(name = "photo")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class Photo implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sequenceGenerator")
    @SequenceGenerator(name = "sequenceGenerator")
    private Long id;

    @NotNull
    @Column(name = "creation_date", nullable = false)
    private Instant creationDate;

    @Lob
    @Column(name = "image")
    private byte[] image;

    @Column(name = "image_content_type")
    private String imageContentType;

    @Size(min = 2, max = 25000)
    @Column(name = "description", length = 25000)
    private String description;

    @ManyToOne(optional = false)
    @NotNull
    @JsonIgnoreProperties("photos")
    private Local local;

    @ManyToOne
    @JsonIgnoreProperties("photos")
    private Course course;

JDL:

entity Photo {
    creationDate Instant required,
    image ImageBlob,
    description String minlength(2) maxlength(25000)
}

Я понятия не имею, хотя может быть, это подсказка: Hibernate, Postgresql: столбец "x" имеет тип oid, но выражение имеет введите byte

Но я не уверен, является ли это ошибкой (поскольку я не уничтожил эту сущность), и она должна быть исправлена ​​в Jhipster или это решение может быть применено.

Спасибо за помощь.

1 Ответ

0 голосов
/ 26 февраля 2020

Это старая ошибка https://github.com/jhipster/generator-jhipster/issues/1940, и решение состоит в том, чтобы изменить аннотацию @Lob на:

@Type(type="org.hibernate.type.BinaryType")
@Column(name = "image")
private byte[] image;

Это происходит в Postgres 9.6, которая является используемой версией в GCP. Может быть, у вас его не будет в более новой версии, но если это случится и с вами, пожалуйста, напишите комментарий с версией Postgres, которая поставит вам проблему. Спасибо за вашу помощь.

PD: я оставляю вопрос и ответ как другой, потому что это потенциальная ошибка jhipster, которую мы не можем воспроизвести. Поэтому, если кто-то попадает в ту же проблему и может воспроизвести ее, мы хотели бы сообщить об этом как о проблеме Jhipster, чтобы сделать обходной путь официальным. Если это не повторится, мы забудем об этом. Спасибо за ваше внимание.

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