diff --git a/core/src/main/java/cz/muni/pa165/data/model/Car.java b/core/src/main/java/cz/muni/pa165/data/model/Car.java
index cfd36d0e767f35be14f300ccdc7a8271e7e4168e..26bd28b436b3549c42ae944ee8608c6c31f11abc 100644
--- a/core/src/main/java/cz/muni/pa165/data/model/Car.java
+++ b/core/src/main/java/cz/muni/pa165/data/model/Car.java
@@ -11,7 +11,7 @@ import java.util.Set;
 
 @Entity
 @Table(name = "car")
-public class Car extends DomainObject implements Serializable {
+public class Car extends DomainObject<Long> implements Serializable {
     @OneToOne(fetch = FetchType.LAZY)
     @JoinColumn(name = "driver_id")
     @Nullable
diff --git a/core/src/main/java/cz/muni/pa165/data/model/CarComponent.java b/core/src/main/java/cz/muni/pa165/data/model/CarComponent.java
index f5641c0d22840e9cd6737e45d1d9e8ca716fa621..866127df8807a86635ed95a0a510d6197bf04a94 100644
--- a/core/src/main/java/cz/muni/pa165/data/model/CarComponent.java
+++ b/core/src/main/java/cz/muni/pa165/data/model/CarComponent.java
@@ -12,7 +12,7 @@ import java.util.Objects;
 
 @Entity
 @Table(name = "car_component")
-public class CarComponent extends DomainObject implements Serializable {
+public class CarComponent extends DomainObject<Long> implements Serializable {
 
     @Column(name = "component_type")
     @Enumerated(EnumType.STRING)
diff --git a/core/src/main/java/cz/muni/pa165/data/model/Department.java b/core/src/main/java/cz/muni/pa165/data/model/Department.java
index ca27780d3ef0eb0a4a98055a5e5b18a4a43db1c7..8d4ce31ad8a5df7aa1a3df657d8baed3a5254032 100644
--- a/core/src/main/java/cz/muni/pa165/data/model/Department.java
+++ b/core/src/main/java/cz/muni/pa165/data/model/Department.java
@@ -10,7 +10,7 @@ import java.util.Set;
 
 @Entity
 @Table(name = "department")
-public class Department extends DomainObject implements Serializable {
+public class Department extends DomainObject<Long> implements Serializable {
 
     @NotEmpty
     private String specialization;
diff --git a/core/src/main/java/cz/muni/pa165/data/model/DomainObject.java b/core/src/main/java/cz/muni/pa165/data/model/DomainObject.java
index 1fa12590cf56406a08fb1a554ecef9e94b484014..7071f57d04baa00e3b7fda2e2f2af36deac209c6 100644
--- a/core/src/main/java/cz/muni/pa165/data/model/DomainObject.java
+++ b/core/src/main/java/cz/muni/pa165/data/model/DomainObject.java
@@ -6,20 +6,22 @@ import jakarta.persistence.GenerationType;
 import jakarta.persistence.Id;
 import jakarta.persistence.MappedSuperclass;
 
+import java.io.Serializable;
+
 /**
  * @author Michal Badin
  */
 @MappedSuperclass
-public abstract class DomainObject {
+public abstract class DomainObject<PK extends Serializable> implements Serializable {
     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
-    private Long id;
+    private PK id;
 
-    public Long getId() {
+    public PK getId() {
         return id;
     }
 
-    public void setId(Long id) {
+    public void setId(PK id) {
         this.id = id;
     }
 }
diff --git a/core/src/main/java/cz/muni/pa165/data/model/Driver.java b/core/src/main/java/cz/muni/pa165/data/model/Driver.java
index efa7bad06caf0c425cf334b18f929505357dd926..6d401bf117203f4389c7969f46cf046dab681c80 100644
--- a/core/src/main/java/cz/muni/pa165/data/model/Driver.java
+++ b/core/src/main/java/cz/muni/pa165/data/model/Driver.java
@@ -16,7 +16,7 @@ import java.util.Set;
 
 @Entity
 @Table(name = "driver")
-public class Driver extends DomainObject implements Serializable {
+public class Driver extends DomainObject<Long> implements Serializable {
 
     @NotEmpty
     private String name;
diff --git a/core/src/main/java/cz/muni/pa165/data/model/Engineer.java b/core/src/main/java/cz/muni/pa165/data/model/Engineer.java
index 7fa3623617173ca276db256d65cde8716efa63c8..ca2551ed8d6d298249a4617ddc15f15cb190eb83 100644
--- a/core/src/main/java/cz/muni/pa165/data/model/Engineer.java
+++ b/core/src/main/java/cz/muni/pa165/data/model/Engineer.java
@@ -9,7 +9,7 @@ import java.util.Objects;
 
 @Entity
 @Table(name = "engineer")
-public class Engineer extends DomainObject implements Serializable {
+public class Engineer extends DomainObject<Long> implements Serializable {
 
     @NotEmpty
     private String name;