Size: a a a

2021 February 02

S

Sergey in learn.java
всем привет. у меня вопрос, долго сидел, думал и не придумал.

есть класс customer и у него два поля относятся (внешние ключи) к одной таблице adress. в таблице адрес будет две строки с разными id на два разных поля customer.

public class Customer {
...
 private long registred_address_id;
 private long actual_address_id;


public class Address{
private id
...

как развешать аннотации joincolumn и onetoone для хибернейта?
меня посещает мысль, что проще сделать два адреса (class Address1 и class Address2) и тогда все просто. но можно ли сделать по-другому?
источник

A

Alex in learn.java
Sergey
всем привет. у меня вопрос, долго сидел, думал и не придумал.

есть класс customer и у него два поля относятся (внешние ключи) к одной таблице adress. в таблице адрес будет две строки с разными id на два разных поля customer.

public class Customer {
...
 private long registred_address_id;
 private long actual_address_id;


public class Address{
private id
...

как развешать аннотации joincolumn и onetoone для хибернейта?
меня посещает мысль, что проще сделать два адреса (class Address1 и class Address2) и тогда все просто. но можно ли сделать по-другому?
источник

DC

Denis Chikanov in learn.java
Sergey
всем привет. у меня вопрос, долго сидел, думал и не придумал.

есть класс customer и у него два поля относятся (внешние ключи) к одной таблице adress. в таблице адрес будет две строки с разными id на два разных поля customer.

public class Customer {
...
 private long registred_address_id;
 private long actual_address_id;


public class Address{
private id
...

как развешать аннотации joincolumn и onetoone для хибернейта?
меня посещает мысль, что проще сделать два адреса (class Address1 и class Address2) и тогда все просто. но можно ли сделать по-другому?
Ещё в джаве поля снейккейсом не именуются

Нет, два разных класса для одной модели - очень плохая идея, ссылку выше хорошую кинули
источник

S

Sergey in learn.java
ткните в пункт, я тут не вижу подходящего
источник

V

Vladimir in learn.java
Sergey
ткните в пункт, я тут не вижу подходящего
https://www.baeldung.com/jpa-one-to-one#fk-model - можно замаппить два поля типа Address в Customer с нужными @JoinColumn(name)
источник

S

Sergey in learn.java
Vladimir
https://www.baeldung.com/jpa-one-to-one#fk-model - можно замаппить два поля типа Address в Customer с нужными @JoinColumn(name)
мне нужно @onetoone два раза повешать на id в классе адресс? а на факт и юр адреса повешать joincolumn? я же не могу два раза onetoone (mapped by...)повешать на id
источник

AA

Amir Atamekenov in learn.java
Добрый вечер, такой вопрос, как сделать валидацию пользователя, допустим если он меньше 18ти то должно выброситься исключение и как это все в мейне организовать?
источник

AA

Amir Atamekenov in learn.java
я примерно пытался сделать
источник

AA

Amir Atamekenov in learn.java
но как это все в мейне реализовать?
источник

V

Vladimir in learn.java
Sergey
мне нужно @onetoone два раза повешать на id в классе адресс? а на факт и юр адреса повешать joincolumn? я же не могу два раза onetoone (mapped by...)повешать на id
да но будет один @JoinColumn(name = "first_address_column_name_in_customer_table", referencedColumnName = "id") а второй с name=second_address_column_name_in_customer_table
источник

S

Sergey in learn.java
Vladimir
да но будет один @JoinColumn(name = "first_address_column_name_in_customer_table", referencedColumnName = "id") а второй с name=second_address_column_name_in_customer_table
я не могу на адресс два раза повешать onetoone
источник

V

Vladimir in learn.java
Sergey
я не могу на адресс два раза повешать onetoone
почему? два поля с адресами
источник

S

Sergey in learn.java
Vladimir
почему? два поля с адресами
видимо, я тут что-то упорно не понимаю..

я это вижу так, но так нельзя
источник

.

... in learn.java
Sergey
видимо, я тут что-то упорно не понимаю..

я это вижу так, но так нельзя
Ты чево наделал?
источник

.

... in learn.java
Столько аннотаций , зачем тебе NotNull на айдишниках?
источник

V

Vladimir in learn.java
Sergey
видимо, я тут что-то упорно не понимаю..

я это вижу так, но так нельзя
а зачем в адресе OneToOne (там не нет ссылки на кастомера? просто в Customer в OneToOne указать имя столбца из таблицы адреса в name
источник

V

Vladimir in learn.java
Sergey
видимо, я тут что-то упорно не понимаю..

я это вижу так, но так нельзя
ну и маппить не long, а объекты)
источник

S

Sergey in learn.java
...
Ты чево наделал?
как батька в тз прописал

CREATE TABLE address (
id bigserial NOT NULL,
contry varchar(255),
region varchar(255),
city varchar(255),
street varchar(255),
house varchar(255),
flat varchar(255),
created timestamp,
modified timestamp,
CONSTRAINT pk_address PRIMARY KEY (id)
);
CREATE TABLE customer (
id bigserial NOT NULL,
registred_address_id bigint NOT NULL,
actual_address_id bigint NOT NULL,
first_name varchar(255) NULL,
last_name varchar(255) NULL,
middle_name varchar(255) NULL,
sex varchar(6) NOT NULL,
CONSTRAINT ck_customer_sex CHECK (((sex)::text = ANY ((ARRAY['male'::character
varying, 'female'::character varying])::text[]))),
CONSTRAINT pk_customer PRIMARY KEY (id),
CONSTRAINT fk_registred_address_id FOREIGN KEY (registred_address_id)
REFERENCES address(id) ON UPDATE RESTRICT ON DELETE RESTRICT,
CONSTRAINT fk_actual_address_id FOREIGN KEY (actual_address_id) REFERENCES
address(id) ON UPDATE RESTRICT ON DELETE RESTRICT
)
источник

A

Alex in learn.java
ну кто ж Not null в аннотации пишет entity-класса?
источник

A

Alex in learn.java
плюс, какие требования есть к entity-классам?
источник