Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JPA:在JPA查询中使用AttributeConverter自动解密_Java_Jpa_Encryption_Cryptography_Aes - Fatal编程技术网

Java JPA:在JPA查询中使用AttributeConverter自动解密

Java JPA:在JPA查询中使用AttributeConverter自动解密,java,jpa,encryption,cryptography,aes,Java,Jpa,Encryption,Cryptography,Aes,我编写了自己的AttributeConverter来加密和解密字符串,类似于: @Converter public class CryptoConverter implements AttributeConverter<String, String> { @Override public String convertToDatabaseColumn(String attribute) { //works fine } @Override public String conve

我编写了自己的AttributeConverter来加密和解密字符串,类似于:

@Converter
public class CryptoConverter implements AttributeConverter<String, String> {

@Override
public String convertToDatabaseColumn(String attribute)  {
 //works fine
}

@Override
public String convertToEntityAttribute(String dbData) {
//works fine
}

}
在这里之前一切都很好。我设置的数据在数据库中进行加密,并在获得结果集后进行解密。但是加密转换器并没有在JPA查询中自动使用

@Override
public Card findCard(String lastFour, String tenantId, EntityManager entityManager) {
    Query query = entityManager.createQuery("SELECT e FROM Card e where e.cardLast4Digits = :lastFour").setParameter("lastFour", "lastFour");
    List<Card> cardList = query.getResultList();
    if (cardList != null && cardList.size() > 0) {
        return cardList.get(0);
    }
    return null;
}
@覆盖
公共卡findCard(字符串lastFour、字符串tenantId、EntityManager和EntityManager){
Query Query=entityManager.createQuery(“从卡片e中选择e,其中e.cardLast4Digits=:lastFour”).setParameter(“lastFour”,“lastFour”);
List cardList=query.getResultList();
if(cardList!=null&&cardList.size()>0){
返回卡片列表。获取(0);
}
返回null;
}

在什么意义上,您希望在查询中“使用”转换器?
@Override
public Card findCard(String lastFour, String tenantId, EntityManager entityManager) {
    Query query = entityManager.createQuery("SELECT e FROM Card e where e.cardLast4Digits = :lastFour").setParameter("lastFour", "lastFour");
    List<Card> cardList = query.getResultList();
    if (cardList != null && cardList.size() > 0) {
        return cardList.get(0);
    }
    return null;
}