@Entity public class AccountEntity{ @ManyToOne(fetch = FetchType.EAGER, optiOnal= false) @Cascade(CascadeType.ALL) @JoinColumn(name = COLUMN_TYPEID_NAME, referencedColumnName = CardTypeEntity.COLUMN_ID_NAME, unique = true) private CardTypeEntity cardTypeEntity; } @Entity public class CardTypeEntity { @Column(name = COLUMN_TYPENAME_NAME, nullable = false) @NotNull @NotBlank private String typeName; } - 也就是一个纯单向的关联
- account 数据库有个 column type_id 关联到 card_type 表的 pk id
- 但是在 java 代码里不需要写这个字段
- card_type 表有一个不为空的 unique 的type_name column
- 如果用 spring CrudRepository 的 save 方法, repositoryClass.save(accountEntity)
- 一个 new account 关联的 cardType name 表里可能不存在,那么 save 没问题,
- hibernate insert 一个 new cardType row, 然后 insert new account 且 new cardType id 放到 account type_id 字段里
- 但是如果 cardType 表里已存在,那就异常了, 这该咋办啊
- 一个 new account 关联的 cardType name 表里可能不存在,那么 save 没问题,
- 如果注入 entityManager, 用 em.persist 也是一样的
我想做一个每次插入一个新纪录,如果关联的 type 有那就只插入 account 且把 type_id 关联到表里,如果没有两张表都新建,该怎么写代码???
