I get inconsistent results with @OneToOne unidirectional relationships in Hibernate. In particular, I have a table Userwith two relationships to other tables: Fooand Bar.
Foomaps to a Usercustom property uuid(string). Barmaps to a Usercustom property id(integer).
My objects look something like this:
@Entity
@Table(name = "User")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private Integer id;
@Column(name = "uuid")
private String uuid;
@OneToOne
@JoinColumn(name = "uuid", referencedColumnName = "frn_object_uuid")
private Foo foo;
@OneToOne
@JoinColumn(name = "id", referencedColumnName = "frn_user_id")
private Bar bar;
}
@Entity
@Table(name = "Foo")
public class Foo {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private Integer id;
@Column(name = "frn_object_uuid")
private String objectUuid;
@Column(name = "foo")
private String foo;
}
@Entity
@Table(name = "Bar")
public class Bar {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private Integer id;
@Column(name = "frn_user_id")
private Integer userId;
@Column(name = "bar")
private String bar;
}
When I read an object User, I get results for Foo, but NULL for Bar.
What am I missing here? I can get results if I do a Barbi-directional relation using mappedBy... very strange.
Thanks in advance!