Мне нужно зашифровать и расшифровать некоторые столбцы, такие.
@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 не добавляет псевдоним таблицы для столбца "имя", Что мне делать?