Hibernate @javax.persistence.Convert on@javax.persistence.Id
我正在尝试将Hibernate @javax.persistence.Convert on@javax.persistence.Id,hibernate,jpa,type-conversion,Hibernate,Jpa,Type Conversion,我正在尝试将MongoDb对象Id转换为字符串,并将其用作MYSQL表的主键。 这种转变正在发生@Convert将ObjectId转换为字符串并存储在MYSQL数据库中。但是@Convert和@ID不能一起工作。这方面有什么工作吗?@Convert和@ID可以一起使用吗 这是密码 @Converter public class ObjectIdConvertor implements AttributeConverter<ObjectId,String> { @Override p
MongoDb
对象Id转换为字符串,并将其用作MYSQL
表的主键。
这种转变正在发生@Convert
将ObjectId转换为字符串并存储在MYSQL数据库中。但是@Convert
和@ID
不能一起工作。这方面有什么工作吗?@Convert
和@ID
可以一起使用吗
这是密码
@Converter
public class ObjectIdConvertor implements AttributeConverter<ObjectId,String> {
@Override
public String convertToDatabaseColumn(ObjectId objectId) {
if(objectId!=null){
return objectId.toHexString();
}
else{
return null;
}
}
@Override
public ObjectId convertToEntityAttribute(String s) {
return new ObjectId(s);
}
}
@Entity
public class Abc{
@javax.persistence.Convert(converter = ObjectIdConvertor.class)
@javax.persistence.Id
private ObjectId environmentId;
private String name;
}
@转换器
公共类ObjectdConverter实现AttributeConverter{
@凌驾
公共字符串convertToDatabaseColumn(ObjectId ObjectId){
if(objectId!=null){
返回objectId.toHexString();
}
否则{
返回null;
}
}
@凌驾
公共对象ID convertToEntityAttribute(字符串s){
返回新的ObjectId;
}
}
@实体
公共课Abc{
@Convert(converter=ObjectdConvertor.class)
@javax.persistence.Id
私有ObjectId环境id;
私有字符串名称;
}
是否可能重复?请详细说明?我不确定有什么需要详细说明的?Convert用于将ObjectId转换为字符串,Id用于设置为主键。这两者都是需要的。你认为复制的原因是什么?还有什么可以替代呢?重复的问题有一个答案。