Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/model/dto/UnitPriceDto.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/model/dto/UnitPriceDto.java	(revision 291681b0a1df9be7f7b1cbe5de521271be8fc030)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/model/dto/UnitPriceDto.java	(revision 291681b0a1df9be7f7b1cbe5de521271be8fc030)
@@ -0,0 +1,11 @@
+package mk.ukim.finki.db.distributorapp.model.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+@Data
+@AllArgsConstructor
+public class UnitPriceDto {
+    private Long unitId;
+    private Long priceId;
+}
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/UnitPrice.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/UnitPrice.java	(revision 291681b0a1df9be7f7b1cbe5de521271be8fc030)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/UnitPrice.java	(revision 291681b0a1df9be7f7b1cbe5de521271be8fc030)
@@ -0,0 +1,23 @@
+package mk.ukim.finki.db.distributorapp.model.entities;
+
+import jakarta.persistence.*;
+import lombok.Data;
+
+@Data
+@Entity
+@Table(name = "unit_price", schema = "IND0_185022")
+public class UnitPrice {
+    @EmbeddedId
+    private UnitPriceId id;
+
+    @MapsId("unitId")
+    @ManyToOne(fetch = FetchType.LAZY, optional = false)
+    @JoinColumn(name = "unit_id", nullable = false)
+    private ArticleUnit unit;
+
+    @MapsId("priceId")
+    @ManyToOne(fetch = FetchType.LAZY, optional = false)
+    @JoinColumn(name = "price_id", nullable = false)
+    private Price price;
+
+}
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/UnitPriceId.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/UnitPriceId.java	(revision 291681b0a1df9be7f7b1cbe5de521271be8fc030)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/UnitPriceId.java	(revision 291681b0a1df9be7f7b1cbe5de521271be8fc030)
@@ -0,0 +1,23 @@
+package mk.ukim.finki.db.distributorapp.model.entities;
+
+import jakarta.persistence.Column;
+import jakarta.persistence.Embeddable;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+@Data
+@Embeddable
+@NoArgsConstructor
+@AllArgsConstructor
+@EqualsAndHashCode
+public class UnitPriceId implements Serializable {
+    @Column(name = "unit_id", nullable = false)
+    private Long unitId;
+    @Column(name = "price_id", nullable = false)
+    private Long priceId;
+
+}
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/CategoryRepository.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/CategoryRepository.java	(revision 1bc00976b871f2ae3cccfc7126cdc7bb54c31a5a)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/CategoryRepository.java	(revision 291681b0a1df9be7f7b1cbe5de521271be8fc030)
@@ -6,4 +6,5 @@
 import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -14,32 +15,41 @@
 
     @Query(
-            value = "select * " +
-                    "from category c " +
-                    "where c.ctg_name like ?1",
-            nativeQuery = true)
-    List<Category> findAllByName(@NonNull String name);
+            nativeQuery = true,
+            value = """
+                    select *
+                    from category c
+                    where c.ctg_name like :name
+                    """)
+    List<Category> findAllByName(@Param("name") @NonNull String name);
 
     @Query(
-            value = "select * " +
-                    "from category",
-            nativeQuery = true)
+            nativeQuery = true,
+            value = """
+                    select *
+                    from category
+                    """
+    )
     List<Category> listAll();
 
     @Query(
-            value = "select * " +
-                    "from category c " +
-                    "where c.ctg_id=?1",
-            nativeQuery = true
+            nativeQuery = true,
+            value = """
+                    select *
+                    from category c
+                    where c.ctg_id=:id
+                    """
     )
-    Optional<Category> findById(@NonNull Long id);
+    Optional<Category> findById(@Param("id") @NonNull Long id);
 
     @Modifying
     @Transactional
     @Query(
-            value = "insert into category(ctg_name) " +
-                    "values (?1)",
-            nativeQuery = true
+            nativeQuery = true,
+            value = """
+                    insert into category(ctg_name)
+                    values (:name)
+                    """
     )
-    Integer create(@NonNull String name);
+    Integer create(@Param("name") @NonNull String name);
 
     @Modifying
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/ManufacturerRepository.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/ManufacturerRepository.java	(revision 1bc00976b871f2ae3cccfc7126cdc7bb54c31a5a)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/ManufacturerRepository.java	(revision 291681b0a1df9be7f7b1cbe5de521271be8fc030)
@@ -34,6 +34,8 @@
     @Query(
             nativeQuery = true,
-            value = "insert into manufacturer(man_name, man_address, man_mobile, man_email) " +
-                    "values (?1,?2,?3,?4)"
+            value = """
+                    insert into manufacturer(man_name, man_address, man_mobile, man_email)
+                    values (?1,?2,?3,?4)
+                    """
     )
     Integer create(
@@ -47,7 +49,9 @@
     @Query(
             nativeQuery = true,
-            value = "update manufacturer " +
-                    "set man_name=?2,man_address=?3,man_mobile=?4,man_email=?5 " +
-                    "where man_id=?1"
+            value = """
+                    update manufacturer
+                    set man_name=?2,man_address=?3,man_mobile=?4,man_email=?5
+                    where man_id=?1
+                    """
     )
     Integer edit(
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/UnitPriceRepository.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/UnitPriceRepository.java	(revision 291681b0a1df9be7f7b1cbe5de521271be8fc030)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/UnitPriceRepository.java	(revision 291681b0a1df9be7f7b1cbe5de521271be8fc030)
@@ -0,0 +1,44 @@
+package mk.ukim.finki.db.distributorapp.repository;
+
+import lombok.NonNull;
+import mk.ukim.finki.db.distributorapp.model.entities.UnitPrice;
+import mk.ukim.finki.db.distributorapp.model.entities.UnitPriceId;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Modifying;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+public interface UnitPriceRepository extends JpaRepository<UnitPrice, UnitPriceId> {
+
+
+    @Query(
+            nativeQuery = true,
+            value = """
+                    select au.unit_id as unitId,
+                           up.price_id as priceId
+                    from article_unit au
+                    join unit_price up on au.unit_id = up.unit_id
+                    join price p on up.price_id = p.price_id
+                    where p.art_id= ?1;
+                    """
+    )
+    List<UnitPrice> findUnitPricesByArticleId(Long articleId);
+
+
+    @Modifying
+    @Transactional
+    @Query(
+            nativeQuery = true,
+            value = """
+                    insert into unit_price(unit_id, price_id)
+                    values (:unitId, :priceId)
+                    """
+    )
+    Integer create(
+            @Param("unitId") @NonNull Long unitId,
+            @Param("priceId") @NonNull Long priceId
+    );
+}
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/service/ArticleUnitService.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/service/ArticleUnitService.java	(revision 1bc00976b871f2ae3cccfc7126cdc7bb54c31a5a)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/service/ArticleUnitService.java	(revision 291681b0a1df9be7f7b1cbe5de521271be8fc030)
@@ -2,4 +2,5 @@
 
 import mk.ukim.finki.db.distributorapp.model.dto.ArticleUnitDto;
+import mk.ukim.finki.db.distributorapp.model.dto.UnitPriceDto;
 import mk.ukim.finki.db.distributorapp.model.entities.Warehouse;
 
@@ -19,4 +20,6 @@
     Integer edit(ArticleUnitDto articleUnitDto);
 
+    Integer addArticleUnitWithPrice(ArticleUnitDto articleUnitDto, UnitPriceDto unitPriceDto);
+
     void delete(Long id);
 }
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/service/impl/ArticleUnitServiceImpl.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/service/impl/ArticleUnitServiceImpl.java	(revision 1bc00976b871f2ae3cccfc7126cdc7bb54c31a5a)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/service/impl/ArticleUnitServiceImpl.java	(revision 291681b0a1df9be7f7b1cbe5de521271be8fc030)
@@ -2,10 +2,14 @@
 
 import mk.ukim.finki.db.distributorapp.model.dto.ArticleUnitDto;
+import mk.ukim.finki.db.distributorapp.model.dto.UnitPriceDto;
 import mk.ukim.finki.db.distributorapp.model.entities.ArticleUnit;
 import mk.ukim.finki.db.distributorapp.model.entities.Warehouse;
 import mk.ukim.finki.db.distributorapp.repository.ArticleUnitRepository;
+import mk.ukim.finki.db.distributorapp.repository.PriceRepository;
+import mk.ukim.finki.db.distributorapp.repository.UnitPriceRepository;
 import mk.ukim.finki.db.distributorapp.repository.WarehouseRepository;
 import mk.ukim.finki.db.distributorapp.service.ArticleUnitService;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
@@ -16,8 +20,12 @@
     private final ArticleUnitRepository articleUnitRepository;
     private final WarehouseRepository warehouseRepository;
+    private final UnitPriceRepository unitPriceRepository;
+    private final PriceRepository priceRepository;
 
-    public ArticleUnitServiceImpl(ArticleUnitRepository articleUnitRepository, WarehouseRepository warehouseRepository) {
+    public ArticleUnitServiceImpl(ArticleUnitRepository articleUnitRepository, WarehouseRepository warehouseRepository, UnitPriceRepository unitPriceRepository, PriceRepository priceRepository) {
         this.articleUnitRepository = articleUnitRepository;
         this.warehouseRepository = warehouseRepository;
+        this.unitPriceRepository = unitPriceRepository;
+        this.priceRepository = priceRepository;
     }
 
@@ -88,4 +96,5 @@
 
     @Override
+    @Transactional
     public Integer create(ArticleUnitDto articleUnitDto) {
         return this.articleUnitRepository.create(
@@ -102,4 +111,5 @@
 
     @Override
+    @Transactional
     public Integer edit(ArticleUnitDto articleUnitDto) {
         return this.articleUnitRepository.edit(
@@ -117,4 +127,22 @@
 
     @Override
+    @Transactional
+    public Integer addArticleUnitWithPrice(ArticleUnitDto articleUnitDto, UnitPriceDto unitPriceDto) {
+        this.articleUnitRepository.create(
+                articleUnitDto.getExpiryDate(),
+                articleUnitDto.getSerialNo(),
+                articleUnitDto.getBatchNo(),
+                articleUnitDto.getManufactureDate(),
+                articleUnitDto.getCostPrice(),
+                articleUnitDto.getArtId(),
+                articleUnitDto.getWhId(),
+                articleUnitDto.getOrdId()
+        );
+        this.unitPriceRepository.create(unitPriceDto.getUnitId(),unitPriceDto.getPriceId());
+
+        return 0;
+    }
+
+    @Override
     public void delete(Long id) {
         this.articleUnitRepository.deleteById(id);
