У меня есть 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 я связываю класы.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей