Перейти до основного вмісту

Публікації

Показано дописи з червень, 2026

Складний ключ в Spring Data JPA

Spring Data JPA дозволяє зручно працювати з ORM: для кожної таблиці досить просто створити entity-клас із відповідними полями. Поле певинного ключа позначається антацієї @Id . Але інколи доводиться працювати з таблицями, у яких є лише складений ключ. В такому випадку можна використати кілька підходів. Вбудований клас Нехай у нас є таблиця зі складеним клчем по полях product_id та language_id . Тоді нам потрібно створити допоміжний Embeddable-клас: @Embeddable public class ProductLanguageId implements Serializable { @Column(name = "product_id") private Long productId; @Column(name = "language_id") private Long languageId; // constructors public ProductLanguageId() {} public ProductLanguageId(Long productId, Long languageId) { this.productId = productId; this.languageId = languageId; } // getters/setters @Override public boolean equals(Object o) { ... } @Override public int hashCode() { ....

Mix в Elixir

Mix — це потужний інструмент для управління проектами Elixir. Він надає команди для створення проектів, управління залежностями, компіляції коду, запуску тестів та багато іншого. Mix — це менеджер завдань та збирач проектів, подібний до Maven (Java) або Cargo (Rust). Він поставляється зі встановленням Elixir: # Перевірка версії Mix mix --version # Mix 1.14.0 (compiled with Erlang/OTP 25) # Допомога mix help mix help test mix help compile Створення нового проекту Mix допомагає швидко створити новий проект з необхідною структурою: # Створення простого проекту mix new my_app # Creates my_app directory with files # Створення проекту як OTP додатка mix new my_app --sup # Додає supervision tree # Створення проекту для бібліотеки mix new my_lib --umbrella # Створює monorepo структуру Структура проекту my_app/ ├── _build/ # Скомпільовані файли ├── lib/ # Сирцевий код │ ├── my_app.ex # Основний модуль │ └── my_app/...

String в Elixir

Рядки (strings) — це послідовності символів у кодуванні UTF-8. В Elixir рядки закліченні в подвійні лапки та мають багато корисних функцій для маніпуляції. Основи рядків Рядки в Elixir — це послідовності знаків, закодовані в UTF-8: # Прості рядки name = "Іван" message = "Привіт, світ!" # Багаторядкові рядки text = "Це перший рядок Це другий рядок Це третій рядок" # Спеціальні символи escaped = "Лінія 1\nЛінія 2\tТабуляція" quote = "Він сказав \"Привіт!\"" # Довжина рядка (кількість символів) String.length("Привіт") # 6 # Визначення порожнього рядка empty = "" String.length(empty) # 0 На відміну від списків символів ( char lists ), рядки у подвійних лапках — це бінарні значення UTF-8. Рядки vs побайтові послідовності В Elixir існує различниця між рядками та побайтовими послідовностями: # Рядок (string) - подвійні лапки string = "Hello" byte_size(string) # 5 # Спис...