1
ここはoneToOneマッピング用のSpringBoot Jpa実装です。 Hibernateは、のコードに示すように、テーブルに外部キーcompany_id
のヌルを挿入しようとしました。 助けてください。HibernateがOneToOneエンティティ関係の外部キーにnullを挿入しようとしています
CREATE TABLE companies (
id BIGSERIAL PRIMARY KEY NOT NULL,
access_token VARCHAR(255) NOT NULL,
access_secret VARCHAR(255) NOT NULL,
token_expires_at TIMESTAMP WITH TIME ZONE NOT NULL
);
CREATE TABLE company_details (
id BIGSERIAL PRIMARY KEY NOT NULL,
company_id BIGSERIAL NOT NULL REFERENCES companies (id),
company_name VARCHAR(50) NOT NULL
);
@Entity
@Table(name = "companies")
public class Company {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(updatable = false)
private Long id;
@OneToOne(
fetch = FetchType.EAGER,
mappedBy = "company",
cascade = CascadeType.ALL
)
private CompanyDetails details;
...
}
@Entity
@Table(name = "company_details")
public class CompanyDetails {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@OneToOne
@JoinColumn(name = "company_id")
@MapsId
@JsonBackReference // avoid cyclic references
private Company company;
@Size(max = 50)
@NotNull
private String companyName;
}
@Service
public class CompanyService {
@Autowired
private CompanyRepository companyRepository;
@Transactional
public Company createCompany() {
CompanyDetails cd = new CompanyDetails();
cd.setName("cd");
Company c = new Company();
c.setDetails(cd);
this.companyRepository.save(c);
}
}
助けをありがとう:
またcompanyDetailsで会社に設定してください。 – NaveenBabuE
それはあなたのために働いてうれしい –