我有例外:
组织。postgresql。util。PSQLException:错误:运算符不存在:uuid=bytea
提示:没有与给定名称和参数类型匹配的运算符。您可能需要添加显式类型转换。
我有JPA实体
@Entity(name = "products")
class JpaProductEntity {
@Id
private ProductId id;
private String payload;
private Integer version;
public JpaProductEntity() {
}
public void setId(ProductId id) {
this.id = id;
}
public String getPayload() {
return payload;
}
public void setPayload(String payload) {
this.payload = payload;
}
public Integer getVersion() {
return version;
}
public void setVersion(Integer version) {
this.version = version;
}
}
Id类
public class ProductId implements Serializable {
private static final long serialVersionUID = -6110163899364126142L;
private String identifier;
public ProductId(String identifier) {
this.identifier = identifier;
}
public static ProductId from(String identifier) {
Assert.notNull(identifier, "Identifier cannot be null");
return new ProductId(identifier);
}
public static ProductId generate() {
return new ProductId(Id.generateIdentifier());
}
}
此外,转换器:
@Converter(autoApply = true)
public class ProductIdPostgresUuidConverter implements AttributeConverter<ProductId, UUID> {
@Override
public UUID convertToDatabaseColumn(ProductId attribute) {
return UUID.fromString(attribute.toString());
}
@Override
public ProductId convertToEntityAttribute(UUID dbData) {
return ProductId.from(dbData.toString());
}
}
看起来,转换器根本不工作(我在转换器方法中设置了断点,但什么也没发生,调试器并没有进入那个里)。
试试这个:
@Entity(name = "products")
class JpaProductEntity {
@Type(type = "pg-uuid") // tells what type will be internally used by DB
// Definitely need to instruct JPA to use your converter
@Convert(converter = ProductIdPostgresUuidConverter.class)
@Id
private ProductId id;
}
提示:对于同一类型,您可能有多个转换器,由您自行决定使用。您确实需要明确地告诉JPA使用哪一个。
问题的核心似乎是Eclipselink中没有到类型的内部映射。因此,使用一种简单的方法: ...在尝试插入一个对象时,我遇到了一个异常: 我想很公平。 通过查看EclipseLink文档,似乎适用的定制(转换映射、本机查询、转换器)依赖于由所支持的映射(数字、日期、字符串等)组成的数据,因此使用特定于供应商的类型很难做到这一点。 这是如此令人沮丧的主要原因是,posgresql中的类型与text/
我有一个实体Person,它有一个属性Name。name没有被标记为实体。对于Name类,我有一个属性转换器,它通过名字和姓氏的字符串连接创建一个全名。所以对于个人实体,列名是字符串类型。 这是可行的。但现在我想扩展我的个人存储库。我想按她的姓找人。但是 或 不起作用。我得到以下例外: 我怎样才能解决这个问题?谢谢和问候 编辑:
Rust 自定义数据类型主要是通过下面这两个关键字来创建: struct: 定义一个结构体 enum: 定义一个枚举类型 而常量的创建可以通过 const 和 static 关键字来创建。
存在多种方法来重新定义现有类型的行为以及提供新的类型。 重写类型编译 一个常见的需求是强制更改类型的“字符串”版本,即在create table语句或其他SQL函数(如cast)中呈现的版本。例如,应用程序可能希望强制呈现 BINARY 适用于除一个平台外的所有平台 BLOB 待渲染。在本例中,使用现有的泛型类型 LargeBinary ,是大多数用例的首选。但是为了更准确地控制类型,每个方言的编
1. 包含头文件 #import <AdHubSDK/AdHubSDK.h> 2. AdHubCustomView 的创建和初始化 在需要导入广告的ViewController头文件中导入头文件并声明实例以及声明代理 #import <AdHubSDK/AdHubSDK.h> @interface AdHubCustomViewController ()<AdHubCustomViewDele
问题内容: 我有一堂课: 我想在“ JPA”专栏中使用它: 这就是Hibernate所说的: 如何使其了解我的自定义类型。我认为这很简单,但是在文档中找不到。 问题答案: 好吧,有很多方法: 用注释类,并具有: private Email email; 声明自定义值类型-参见此处(使用)