У меня есть таблица работодателя со схемой, содержащей userprofileId
Таблица работодателя, как указано ниже, содержит userprofileid, который является первичным ключом таблицы пользователя
id int(11) (not NULL) PRI
userprofileid int(11) (not nUll)
organization_name varchar(50) (not nUll)
Теперь моим требованием было создать класс JPA для этого работодателя.
Теперь у нас есть Employer.java, с записью ниже.
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@OneToOne(fetch=FetchType.LAZY,cascade = CascadeType.ALL)
@JoinColumn(name="userProfileId", referencedColumnName="id" )
@Column( insertable=false ,updatable =false)
private UserProfile userProfile;
@Column(name = "organization_name")
private String organizationName;
Теперь препятствие есть.
Наш UserProfile - это объект, созданный другим способом. Теперь я не хочу снова добавлять то же значение в таблицу userprofile, и поэтому я сделал inserttable = false и updatable = false в Employer.java, чтобы поле не обновлялось;
Нет, если я установил значение userprofile в объекте работодателя
сказано
org.springframework.dao.InvalidDataAccessApiUsageException: detached entity passed to persist: com.hcentive.core.user.UserProfile; nested exception is org.hibernate.PersistentObjectException: detached entity passed to persist: com.hcentive.core.user.UserProfile
но если я не настрою профиль пользователя, он выдаст ошибку ниже.
Caused by: java.sql.SQLException: Field 'userprofileid' doesn't have a default value
Примечание для сохранения Я использую:
getJpaTemplate().persist(t);