나는 그것에 대해 많은 질문이 있지만 나는 내 문제에 대해 좋은 답변을 찾을 수 없다는 것을 안다. 내가 7로 제이 보스를 사용하고JPA OneToMany 양방향
, 봄 및 최대 절전 모드 (4) JPA 2.0 공급자로 그래서 내가 가지고 간단한 @OneToMany 양방향 관계 :
나는 그런 슈퍼 클래스 사람을 가지고있다 :
@MappedSuperclass
@Inheritance(strategy=InheritanceType.JOINED)
public abstract class Person {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long id;
@NotNull
@Size(min = 1, max = 25)
@Pattern(regexp = "[A-Za-z ]*", message = "must contain only letters and spaces")
private String name;
public Person(String name) {
super();
this.name = name;
}
그리고 클래스 회원 :
@Entity
@Table(uniqueConstraints = @UniqueConstraint(columnNames = "email"))
public class Member extends Person implements Serializable
{
/** Default value included to remove warning. Remove or modify at will. **/
private static final long serialVersionUID = 1L;
@NotNull
@NotEmpty
@Email
private String email;
@NotNull
@Size(min = 10, max = 12)
@Digits(fraction = 0, integer = 12)
@Column(name = "phone_number")
private String phoneNumber;
@OneToMany(cascade=CascadeType.ALL , mappedBy="member" , fetch=FetchType.EAGER)
private List<Order> orders;
또한 클래스 주문 :
,342,그래서 나는 그것이 좋은 구성이라고 생각,하지만 난 메모리 HSQL에서이 응용 프로그램을 테스트하고 난 오류 가지고 :
Hibernate: alter table Order drop constraint FK48E972E548C740B
2012-09-20 16:25:37 org.hibernate.tool.hbm2ddl.SchemaExport perform
ERROR: HHH000389: Unsuccessful: alter table Order drop constraint FK48E972E548C740B
2012-09-20 16:25:37 org.hibernate.tool.hbm2ddl.SchemaExport perform
ERROR: Blad skladniowy w wyrazeniu SQL "ALTER TABLE ORDER[*] DROP CONSTRAINT FK48E972E548C740B "; oczekiwano "identifier"
Syntax error in SQL statement "ALTER TABLE ORDER[*] DROP CONSTRAINT FK48E972E548C740B "; expected "identifier"; SQL statement:
alter table Order drop constraint FK48E972E548C740B [42001-165]
또한 :
Syntax error in SQL statement "CREATE TABLE ORDER[*] (ID INTEGER GENERATED BY DEFAULT AS IDENTITY, NAME VARCHAR(255), PRICE FLOAT NOT NULL, MEMBER_ID BIGINT NOT NULL, PRIMARY KEY (ID)) "; expected "identifier"; SQL statement:
그리고 내 JUnit 테스트를
: 실패 난이 내 단지의 JUnit입니다 ...이 구성에 어떤 문제가 있는지 잘 모릅니다 '순서'에서 member
에 Order
클래스에서
예 ,'user1516873'이 맞습니다.'MySqL'을 사용하면'Order' word는 MySQL의 예약어입니다. – CycDemo
+1 당신은 옳았습니다. 하지만 난 여전히 오류가 :'열에 허용되지 않는 NULL "MEMBER_ID"; SQL 문 : UOrder (id, member_id, name, price) 값 (null,?,?,?)에 삽입 [23502-165]' –
고맙습니다. user1516873, PostgreSQL에서도 동일한 키워드가 예약되었으므로, H2에 적용되는 – dsuess