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 4dc4fadbb2b9ed85be6867d3d8da5b75be4a30ae..cfd36d0e767f35be14f300ccdc7a8271e7e4168e 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
@@ -1,5 +1,7 @@
 package cz.muni.pa165.data.model;
 
+import jakarta.annotation.Nonnull;
+import jakarta.annotation.Nullable;
 import jakarta.persistence.*;
 
 import java.io.Serializable;
@@ -12,11 +14,13 @@ import java.util.Set;
 public class Car extends DomainObject implements Serializable {
     @OneToOne(fetch = FetchType.LAZY)
     @JoinColumn(name = "driver_id")
+    @Nullable
     private Driver driver;
 
     @OneToMany(fetch = FetchType.LAZY,
             mappedBy = "car",
             cascade = {CascadeType.REMOVE, CascadeType.PERSIST, CascadeType.MERGE})
+    @Nonnull
     private Set<CarComponent> components;
 
     public Car() {
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 39ada1bb042d4d75ceaa9676dd27856bafd5c9d2..8876317a2fd58b1b694d1419fe1bd08ef05038f5 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
@@ -1,6 +1,8 @@
 package cz.muni.pa165.data.model;
 
 import cz.muni.pa165.data.enums.ComponentTypeEnum;
+import jakarta.annotation.Nonnull;
+import jakarta.annotation.Nullable;
 import jakarta.persistence.*;
 
 import java.io.Serializable;
@@ -12,14 +14,18 @@ public class CarComponent extends DomainObject implements Serializable {
 
     @Column(name = "component_type")
     @Enumerated(EnumType.STRING)
+    @Nonnull
     private ComponentTypeEnum componentType;
 
+    @Nonnull
     private Double weight;
 
+    @Nonnull
     private String information;
 
     @ManyToOne(fetch = FetchType.LAZY)
     @JoinColumn(name = "car_id")
+    @Nullable
     private Car car;
 
     public CarComponent() {
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 9cdda6ab0b16c768c5387b4a287fecaa8bc20536..9e2726fa344d637a442acc47e09796b968e9de85 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
@@ -1,5 +1,7 @@
 package cz.muni.pa165.data.model;
 
+import jakarta.annotation.Nonnull;
+import jakarta.annotation.Nullable;
 import jakarta.persistence.*;
 
 import java.io.Serializable;
@@ -9,11 +11,14 @@ import java.util.Set;
 @Entity
 @Table(name = "department")
 public class Department extends DomainObject implements Serializable {
+
+    @Nonnull
     private String specialization;
 
     @OneToMany(fetch = FetchType.LAZY,
             mappedBy = "department",
             cascade = {CascadeType.REMOVE, CascadeType.PERSIST, CascadeType.MERGE})
+    @Nullable
     private Set<Engineer> engineers;
 
     public Department() {
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 0cbfd03a19236724aa7eb60f208c5c01a21e7405..9e982d20b606207aa7f6facb4e40c00d9512fb0f 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
@@ -1,5 +1,6 @@
 package cz.muni.pa165.data.model;
 
+import jakarta.annotation.Nonnull;
 import jakarta.persistence.GeneratedValue;
 import jakarta.persistence.GenerationType;
 import jakarta.persistence.Id;
@@ -12,6 +13,7 @@ import jakarta.persistence.MappedSuperclass;
 public abstract class DomainObject {
     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
+    @Nonnull
     private Long id;
 
     public Long getId() {
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 20bfbe4388ec4e5693b27fd086eb35c371a69113..d5058f44c7d7f0c6eb2a97e6cd462f333b445799 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
@@ -1,6 +1,8 @@
 package cz.muni.pa165.data.model;
 
 import cz.muni.pa165.data.enums.CharacteristicsEnum;
+import jakarta.annotation.Nonnull;
+import jakarta.annotation.Nullable;
 import jakarta.persistence.*;
 
 import java.io.Serializable;
@@ -12,24 +14,32 @@ import java.util.Set;
 @Table(name = "driver")
 public class Driver extends DomainObject implements Serializable {
 
+    @Nonnull
     private String name;
 
+    @Nonnull
     private String surname;
 
+    @Nullable
     private Integer height;
 
+    @Nullable
     private LocalDate birthday;
 
+    @Nonnull
     private String nationality;
+
     @ElementCollection(targetClass = CharacteristicsEnum.class)
     @CollectionTable(name = "driver_characteristics", joinColumns = @JoinColumn(name = "driver_id", nullable = false))
     @Column(name = "characteristic")
     @Enumerated(EnumType.STRING)
+    @Nonnull
     private Set<CharacteristicsEnum> characteristics;
 
     @OneToOne(fetch = FetchType.LAZY,
             mappedBy = "driver",
             cascade = {CascadeType.REMOVE, CascadeType.PERSIST, CascadeType.MERGE})
+    @Nullable
     private Car car;
 
     public Driver() {
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 2d0629721933f1107266a388cc42abab84e2678c..050f88cb238e07177d17a20ef8cad18413f09a8d 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
@@ -1,5 +1,7 @@
 package cz.muni.pa165.data.model;
 
+import jakarta.annotation.Nonnull;
+import jakarta.annotation.Nullable;
 import jakarta.persistence.*;
 
 import java.io.Serializable;
@@ -8,12 +10,16 @@ import java.util.Objects;
 @Entity
 @Table(name = "engineer")
 public class Engineer extends DomainObject implements Serializable {
+
+    @Nonnull
     private String name;
 
+    @Nonnull
     private String surname;
 
     @ManyToOne(fetch = FetchType.LAZY)
     @JoinColumn(name = "department_id")
+    @Nullable
     private Department department;
 
     public Engineer() {