From 40637bd68ccea867525a857756355fd6021e2dd2 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 19 Feb 2025 20:00:15 +1300 Subject: [PATCH] Allow OneToOne to map to ManyToOne (#3569) --- .../server/deploy/BeanDescriptorManager.java | 7 ++----- .../src/test/java/org/tests/model/basic/OEngine.java | 8 +++----- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorManager.java index 2cee486469..542a0c9701 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorManager.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorManager.java @@ -1002,11 +1002,8 @@ private DeployBeanPropertyAssocOne mappedOneToOne(DeployBeanPropertyAssocOne< if (!(mappedProp instanceof DeployBeanPropertyAssocOne)) { throw new PersistenceException("Error on " + prop + ". mappedBy property " + targetDesc + "." + mappedBy + " is not a OneToOne?"); } - DeployBeanPropertyAssocOne mappedAssocOne = (DeployBeanPropertyAssocOne) mappedProp; - if (!mappedAssocOne.isOneToOne()) { - throw new PersistenceException("Error on " + prop + ". mappedBy property " + targetDesc + "." + mappedBy + " is not a OneToOne?"); - } - return mappedAssocOne; + // this is allowed to be a OneToOne or ManyToOne + return (DeployBeanPropertyAssocOne) mappedProp; } private void checkUniDirectionalPrimaryKeyJoin(DeployBeanPropertyAssocOne prop) { diff --git a/ebean-test/src/test/java/org/tests/model/basic/OEngine.java b/ebean-test/src/test/java/org/tests/model/basic/OEngine.java index 74aebe6706..4547548645 100644 --- a/ebean-test/src/test/java/org/tests/model/basic/OEngine.java +++ b/ebean-test/src/test/java/org/tests/model/basic/OEngine.java @@ -1,9 +1,7 @@ package org.tests.model.basic; -import jakarta.persistence.Entity; -import jakarta.persistence.Id; -import jakarta.persistence.OneToOne; -import jakarta.persistence.Version; +import jakarta.persistence.*; + import java.io.Serializable; import java.util.UUID; @@ -20,7 +18,7 @@ public class OEngine implements Serializable { @Version private Integer version; - @OneToOne + @ManyToOne private OCar car; public OEngine() {