[hibernate-issues] [Hibernate-JIRA] Resolved: (HHH-5495) Unknown mappedBy using @Id @OneToOne

Gail Badner (JIRA) noreply at atlassian.com
Wed Jan 12 14:01:05 EST 2011


     [ http://opensource.atlassian.com/projects/hibernate/browse/HHH-5495?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gail Badner resolved HHH-5495.
------------------------------

      Assignee: Gail Badner
    Resolution: Duplicate

> Unknown mappedBy using @Id @OneToOne
> ------------------------------------
>
>                 Key: HHH-5495
>                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-5495
>             Project: Hibernate Core
>          Issue Type: Bug
>    Affects Versions: 3.5.0-Final, 3.6.0.Beta3
>         Environment: Hibernate 3.5 and 3.6.0-Beta3
> Glassfish v3.0.1
>            Reporter: Alfio
>            Assignee: Gail Badner
>         Attachments: test.zip
>
>
> This example should work according to JSR 317, Section 2.4.1.3, Example 4 Case(a):
> @Entity
> public class Person {
> 	@Id
> 	private String ssn;
> 	@Column( nullable = false )
> 	private String name;
> 	@Column( nullable = false )
> 	private String surname;
> 	
> 	@OneToOne( mappedBy = "person" )
> 	private PersonDetail personDetail;
> 	... getters and setters ...
> }
> @Entity
> public class PersonDetail {
> 	@Id
> 	@OneToOne
> 	private Person person;
> 	@Column( nullable = true )
> 	private int age;
> 	@Column( nullable = true )
> 	private String city;
> 	... getters and setters ...
> }
> ----
> During deploy the following error is shown:
> Exception while preparing the app org.hibernate.AnnotationException: Unknown mappedBy in: test.Person.personDetail, referenced property unknown: test.PersonDetail.person
> 	at org.hibernate.cfg.OneToOneSecondPass.doSecondPass(OneToOneSecondPass.java:159)
> 	at org.hibernate.cfg.Configuration.originalSecondPassCompile(Configuration.java:1754)
> 	at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1461)
> 	at org.hibernate.cfg.Configuration.buildMappings(Configuration.java:1413)
> 	at org.hibernate.ejb.Ejb3Configuration.buildMappings(Ejb3Configuration.java:1453)
> 	at org.hibernate.ejb.EventListenerConfigurator.configure(EventListenerConfigurator.java:193)
> 	at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:1081)
> 	at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:677)
> 	at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:73)
> 	at org.glassfish.persistence.jpa.PersistenceUnitLoader.loadPU(PersistenceUnitLoader.java:181)
> 	at org.glassfish.persistence.jpa.PersistenceUnitLoader.<init>(PersistenceUnitLoader.java:96)
> 	at org.glassfish.persistence.jpa.JPADeployer.prepare(JPADeployer.java:121)
> 	at com.sun.enterprise.v3.server.ApplicationLifecycle.prepareModule(ApplicationLifecycle.java:644)
> 	at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:296)
> 	at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:183)
> 	at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:272)
> 	at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:305)
> 	at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:320)
> 	at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1176)
> 	at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$900(CommandRunnerImpl.java:83)
> 	at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1235)
> 	at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1224)
> 	at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:365)
> 	at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:204)
> 	at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:166)
> 	at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:100)
> 	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:245)
> 	at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
> 	at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
> 	at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
> 	at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
> 	at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
> 	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
> 	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
> 	at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
> 	at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
> 	at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
> 	at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
> 	at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
> 	at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
> 	at java.lang.Thread.run(Thread.java:619)
> ---
> It works well if I use MapsId (following example 4 case b in JSR 317)
> @Entity
> public class PersonDetail {
> 	@Id
> 	private String ssnPK;
> 	@MapsId
> 	@OneToOne
> 	private Person person;
> ...

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the hibernate-issues mailing list