@ColumnTransformer не имеет псевдонима при выборе столбца - PullRequest
1 голос
/ 25 июня 2019

Мне нужно зашифровать и расшифровать некоторые столбцы, такие.

@Entity
@Table(name = "Person")
@Data
public class Person {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "ID", unique = true, nullable = false)
    private Long id;

    @Column(name = "NAME", columnDefinition = "varchar")
    @ColumnTransformer(read = "pgp_sym_decrypt(decode(NAME, 'hex'), 'key')", write = "encode(pgp_sym_encrypt(?, 'key'), 'hex')")
    private String name;

    @ManyToOne
    @JoinColumn(name = "PARENT_ID")
    private Person parent;

}


Когда я использую PersonRepository.findOneByParentId (10L); и посмотреть журнал sql это

    select
        person0_."id" as id1_99_,
        pgp_sym_decrypt(decode(NAME, 'hex'), 'key') as name2_99_
    from
        "public"."person" person0_
    left outer join
        "public"."person" person1_
            on person0_."parent_id"=person1_."id" 
    where
        person1_."id"=?


Это сообщение об ошибке

ERROR: column reference "name" is ambiguous


Почему @ ColumnTransformer не добавляет псевдоним таблицы для столбца "имя", Что мне делать?

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