Merge and One-to-Many objects

284
10 марта 2018, 16:57

У меня есть 2 сущности

@Entity
@Table(name = "block")
public class Block {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column
    private long id_block;
    @Column
    private String name;
    @OneToMany(mappedBy = "block",cascade = CascadeType.ALL,fetch = FetchType.EAGER)
    private List<Subblock> subblock = new ArrayList<>();

    public Block() {
    }
    public long getId_block() {
        return id_block;
    }
    public void setId_block(long id_block) {
        this.id_block = id_block;
    }
    public Block(String name) {
        this.name = name;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }

    public List<Subblock> getSubblock() {
        return subblock;
    }
    public void setSubblock(List<Subblock> subblock) {
        this.subblock = subblock;
    }
}
@Entity
@Table(name = "subblock")
public class Subblock {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column
    private long id_subblock;
    @ManyToOne
    @JoinColumn(name="id_block")
    private Block block;

    @Column
    String name;
    public Subblock() {
    }
    public long getId_subblock() {
        return id_subblock;
    }
    public void setId_subblock(long id_subblock) {
        this.id_subblock = id_subblock;
    }

    public Block getBlock() {
        return block;
    }
    public void setBlock(Block block) {
        this.block = block;
    }

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

Сервис который осуществляет запись обьекта в бд

@Service
public class RatingService {
    @PersistenceContext
    private EntityManager entityManager;
    ;
    @Autowired
    StaticDataDAO staticDataDAO;
    @Transactional
    public void add(Block block){
        staticDataDAO.addBlock(block);
    }
}

И главный метод

Block block = new Block();
        Subblock subblock = new Subblock();
        List<Subblock>subblockList= new ArrayList();
        subblock.setName(messageSource.getMessage("block_1.1",new String[]{},locale));
        subblockList.add(subblock);
        block.setName(messageSource.getMessage("block_1",new String[]{},locale));
        block.setSubblock(subblockList);
        try {
                ratingService.add(block);
        }
        catch (NullPointerException e){
            e.printStackTrace();
        }
    }

Но по чему-то в базе поле в таблице Subblock.id_block остается пустым , хотя с помощью mappedBY я связываю класы.

READ ALSO
ошибка с mysql java

ошибка с mysql java

Ребят, помогите

268
Выборка определенных строк MYSQL

Выборка определенных строк MYSQL

Например в таблице есть 10 строкНужно выбрать записи с 4 по 7

230
Как размножить задачу на на несколько потоков? C#

Как размножить задачу на на несколько потоков? C#

Допустим, у меня есть некоторый метод Play(int m, int delay), и мне нужно его запустить в m потоках, и чтобы каждый новый поток задерживался на delay миллисекундКак...

276
Запарсить текст входа в рыночные сделки [требует правки]

Запарсить текст входа в рыночные сделки [требует правки]

Есть торговая стратегия на криптовалютном рынкеВнизу слева - тестер стратегий - список сделок

243