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用于设置为主键。这两者都是需要的。你认为复制的原因是什么?还有什么可以替代呢?重复的问题有一个答案。