コンポーネントオブジェクトがcomponentMetaオブジェクトにマップされていますが、cascade(javax.persistence.CascadeType)アクション=すべてを設定しましたが、データベース内のリレーションシップアクションはRestrict(カスケードに更新されません)jpaエンティティはデータベース内のアクションを更新しません
@Entity
@Table(name = "component")
public class Component {
private int idComponent;
private List<ComponentMeta> componentMetas;
public Component() {
}
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public int getIdComponent() {
return this.idComponent;
}
public void setIdComponent(int idComponent) {
this.idComponent = idComponent;
}
@OneToMany(mappedBy = "component", cascade = CascadeType.ALL)
public List<ComponentMeta> getComponentMetas() {
return this.componentMetas;
}
public void setComponentMetas(List<ComponentMeta> componentMetas) {
this.componentMetas = componentMetas;
}
}
そしてComponentMetaオブジェクト:
@Entity
@Table(name = "ComponentMeta")
public class ComponentMeta {
private int idComponentMeta;
private Component component;
public ComponentMeta() {
}
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "idComponentMeta", unique = true, nullable = false)
public int getIdComponentMeta() {
return idComponentMeta;
}
public void setIdComponentMeta(int idComponentMeta) {
this.idComponentMeta = idComponentMeta;
}
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "idComponent")
public Component getComponent() {
return component;
}
public void setComponent(Component component) {
this.component = component;
}
}
ここ
は、コンポーネントオブジェクトです
、データベースに関係のアクションに関する画像(カスケードに更新されません)があります。
春ブーツで私の休止状態の設定(application.properties):
spring.jpa.show-sql = true
spring.jpa.hibernate.ddl-auto = update
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
なぜ関係アクションはカスケードに自動更新されませんか?
JPA関係注釈の「カスケード」フラグは、外部キーがどのように生成されるかとは関係ありません。彼らは、JP Aプロバイダが永続性/更新/削除などを処理する方法に関連しています –
ああ、助けてくれてありがとう: –