JPA JoinColumn不起作用

时间:2012-08-14 07:15:31

标签: jpa annotations

我从一本书的例子开始。它实际上是一个虚拟导向的,我对本书给出的代码有疑问。

这是代码;

@Entity
public class Customer {
@Id
@GeneratedValue
private Long id;
private String firstName;
private String lastName;
private String email;

@OneToOne (fetch = FetchType.LAZY,
           cascade = {CascadeType.PERSIST, CascadeType.REMOVE})
@JoinColumn(name = "address_fk")
private Address address;
//getter, setter, Constructor

- // -------------------------------

@Entity
public class Address {
@Id @GeneratedValue(strategy = GenerationType.AUTO)
private String id;
private String city;
private String street;
private String number;

在这里,它抱怨JoinColumn注释。它说找不到列address_fk。

这是IDE相关问题吗?我错过了什么吗?

编辑:尚未在数据库中创建表格。我期望通过我的persistence.xml

自动在DB上看到它们
<property name="eclipselink.ddl-generation" value="create-tables"/>

1 个答案:

答案 0 :(得分:2)

使用@JoinColumn注释将外部列名称指定为address_fk而不是默认address_id,这很好。

可能不起作用的是@GeneratedValue与String。根据规范,只有生成主键的整数类型才是可移植的。