[img]http://caterpillar.onlyfun.net/Gossip/EJB3Gossip/images/OneToOneSharedPK-1.jpg[/img]
[code="java"]
public class TUser implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "USER_ID")
private Integer userId;
@Column(name = "NAME")
private String name;
@Column(name = "AGE")
private String age;
@OneToOne(cascade = CascadeType.ALL, mappedBy = "tUser")
@PrimaryKeyJoinColumn(name="USER_ID" , referencedColumnName="ROOM_ID")
private TRoom tRoom;
.
.
.
}
public class TRoom implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@Column(name = "ROOM_ID")
private Integer roomId;
@Column(name = "ADDRESS")
private String address;
@JoinColumn(name = "ROOM_ID", referencedColumnName = "USER_ID", insertable = false, updatable = false)
@OneToOne(optional = false)
private TUser tUser;
.
.
.
[/code]
[code="java"]
TRoom room = new TRoom();
room.setAddress("3/f");
TUser user = new TUser();
user.setAge("100");
user.setName("angus");
user.setTRoom(room);
entityManager.persist(user);[/code]
[b]com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column 'ROOM_ID' cannot be null[/b]
环境:
EclipseLink(JPA 2.0) persistence provider
MySQL
Glassfish 3.0
配置错在哪里?