Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.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 @MappedSuperclass中@ID的风险_Java_Spring_Hibernate_Uuid - Fatal编程技术网

Java @MappedSuperclass中@ID的风险

Java @MappedSuperclass中@ID的风险,java,spring,hibernate,uuid,Java,Spring,Hibernate,Uuid,实际上,我想将实体id从Long类型更改为UUID。 我所有的实体都有一个MappedSuperclass。为了节省时间,我想将新的解决方案添加到MappedSuperclass对象中,并从特定实体中删除旧的解决方案 这是一种良好的做法还是与风险相关 老办法 新解决方案 我们在映射的超类中也使用ID,到目前为止没有任何问题。在您的情况下,如果已经存在实体,则可能存在风险:您正在更改类型和id生成,因此必须转换任何现有id等。谢谢,我将在重写实体类后更改任何现有id。如果CustomObject也

实际上,我想将实体id从Long类型更改为UUID。 我所有的实体都有一个MappedSuperclass。为了节省时间,我想将新的解决方案添加到MappedSuperclass对象中,并从特定实体中删除旧的解决方案

这是一种良好的做法还是与风险相关

老办法

新解决方案


我们在映射的超类中也使用ID,到目前为止没有任何问题。在您的情况下,如果已经存在实体,则可能存在风险:您正在更改类型和id生成,因此必须转换任何现有id等。谢谢,我将在重写实体类后更改任何现有id。如果CustomObject也声明了@ID怎么办?如果有人输入了一个拼写错误,忘记了MappedSuperclass对象ID?你的意思是如果实体声明了
ID
,那么MappedSuperclass已经这样做了?我不完全确定,但我认为Hibernate会抱怨,或者任何开发人员测试都会失败。好的,谢谢。我会自己测试。
@Entity
public class CustomObject extends DomainObject {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "ID")
    private Long id;
}
   @MappedSuperclass
   public class DomainObject {

    @Id     
    @GenericGenerator(name = "uuid", strategy = "uuid2")
    @GeneratedValue(generator = "uuid")
    @Type(type="pg-uuid")   
    @Column(name = "ID")    
    private UUID id;

   }