当前位置: 首页 > 知识库问答 >
问题:

Spring/JPA两次uniderection不工作,因为@JoinColiv(nullable=false)

董昕
2023-03-14

我对单向映射有问题,需要帮助。

我有2个实体具有相同的单向映射。

第一个:

@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
@JoinColumn(name = "massnahme_id", nullable = false)
private Set<VerortungDAO> verortungen = new LinkedHashSet<>();

第二条:

@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
@JoinColumn(name = "massnahmen_verbund_id", nullable = false)
private Set<VerortungDAO> verortungen = new LinkedHashSet<>();

如果我试图保存一个实体,Hibernate抛出一个异常,因为第二个实体定义(非空)。

组织。冬眠PropertyValueException:not null属性引用null或瞬态值

如果我将JoinColumn更改为nullable=true,则单向映射不起作用,列表不会保存在DB中。我能做些什么使它工作?

共有1个答案

卢枫涟
2023-03-14

使关联双向,并在VerorTungDAO中映射到一个关联,或者如果您不想这样做,至少映射FK列。如果您将其双向映射,请使用@OneTo很多(mappdBy="...")。无论哪种方式,您都必须初始化VerorTungDAO对象上的二对一关联或FK列。

PS:一个实体不是DAO(数据访问对象),因此命名xxDAO对于一个实体来说是相当混乱的。

 类似资料:
  • 我有一个Spring实体,其中有一个用javax.validation.constraints中的@NotNull注释的字段 问题是,如果为name字段设置了空值,则将其存储在数据库中。但是,如果我按以下方式更改类,它会引发我想要接收的异常: ApplicationContext-JPA 由于我使用的是存储库,因此我还报告了corrisponding实体存储库:

  • 我试图在我的spring boot应用程序中用jpa和db作为MySQL实现悲观锁。我的目标是让一个存储库首先从db获取一行,然后对其设置锁。当此事务运行时,任何人都不能读取同一行。以下是我实现的代码: 现在,当我运行它时,当第一个请求come with data>3时,这个提取行,然后锁定行,线程Hibernate90秒。现在,当第二个请求带有data=1时,线程等待锁(em.find-具有超时

  • 我试图通过在一个事务中运行多个save方法来原子化地保存许多实体,因此如果其中任何一个方法失败,所有这些方法都将被丢弃(回滚)。我尝试了很多方法,但似乎没有什么效果: BookingResource。java: ReservationRepository。java: Reservation.java: stacktrace是: 那么,这里发生了什么?我如何解决它?我试图公开这些方法,更改事务策略,

  • 我在CrudRepository中有下面的API 启动时低于错误: 由以下原因引起:ounter.java:91QuerySyntaException:意外令牌:第1行193列附近的订单[选择新的inal.jarVdororder(orderIorg.hibernate.hql.internal.ast.ItemId,mpl.parseId,mpl.java:288Time,inal.jarTim

  • 我正在使用Spring Data JPA和Hibernate开发一个应用程序,并尝试使用EHCache启用二级缓存。我将我的应用程序分成两个项目: CoreDataFacade:在这里,我使用QueryDSL、Spring data JPA和Hibernate以及Ehcache定义了数据访问操作。 QueryComponent:是使用CoreDataFacade项目访问数据的spring启动项目。

  • 我在一个项目中使用Spring Data JPA(1.3.0.Release),并使用Spring(3.2.2.Release),遇到了一个奇怪的问题。我使用的是基于xml的配置,如下所述。 使用此配置扫描所有扩展JParePository的接口。这些接口按以下方式注入到服务类中。 此配置按预期工作,没有任何问题。但是当我添加以下配置时,我得到了UserRepository的BeanCreatio