2012-04-19 2 views
1

JPA 엔티티 클래스에 문제가 있습니다. 이 엔티티가 완벽하게 작동해야했지만 오늘은 다른 필드 (데이터베이스에 varchar (255)가 아닌 간단한 문자열)를 추가했습니다. 새로운 엔터티를 유지하려고 할 때JPA는 엔티티를 영속화 할 때 필드를 무시합니다.

java.sql.SQLException: Field 'companyLogoUrl' doesn't have a default value 

글쎄, 사실입니다. 열에 기본값이 없습니다. 하지만 내 코드에서 나는 그것에 대한 가치를 설정합니다. 생성 된 insert 문을 살펴보면 필드가 없습니다.

변수의 이름이 column-name과 일치하므로 오류가 발생할 수있는 주석이 없습니다. 그것은 잘 작동하는 다른 필드/열처럼 취급됩니다.

미리 도움을 청하십시오!

편집 :

@Entity 
class Company extends KupiumEntity 
{ 

@Id 
@GeneratedValue(strategy = GenerationType.IDENTITY) 
final int companyId 

String companyName 
String bank 
String bankCode 
String accountNumber 
String accountOwner 

String companyLogoUrl 


@ManyToOne(cascade=CascadeType.PERSIST) 
@JoinColumn(name="addressId") 
Address address = new Address() 


@OneToMany(cascade = CascadeType.ALL) 
@JoinColumn(name="companyId") 
List<Invoice> invoices = new ArrayList<Invoice>() 


@OneToMany(cascade = CascadeType.ALL) 
@JoinColumn(name="companyId") 
List<Kupon> kupons = new ArrayList<Kupon>() 


@OneToMany(cascade = CascadeType.ALL) 
@JoinColumn(name="mandatorId") 
List<Mandator> mandators = new ArrayList<Mandator>() 


@OneToMany(cascade = CascadeType.ALL) 
@JoinColumn(name="companyAppId") 
List<CompanyApp> companyApps = new ArrayList<CompanyApp>() 
} 

편집 : 2 : 혼란을 죄송 여기

클래스 (그루비 클래스)입니다. 테이블의 필드와 열 이름은 'companyLogoUrl'입니다.

+0

엔티티 클래스를 게시하십시오. –

+0

Java 코드/매핑을 확인해야합니다. 어노테이션, getter/setter, 잘못된 수정 자 등의 기존 필드와 새 필드 사이에 * 차이점이 있어야합니다. –

+0

생성 된 SQL과이 클래스가 완전히 일치하는 것처럼 보입니다 ... CHANGEDAT? CREATEDAT? 모든 것이 여기 같은 페이지에 있니? –

답변

1

글쎄, 나는 아직도 원인을 알지 못해도 오늘이 문제를 해결했습니다.

unitTests를 실행하려고했는데이 프로젝트에서이 pom.xml을 찾을 수 없다고했습니다. 이것은 Maven-Project가 아니기 때문에 다소 놀라운 것이 었습니다. 그래서 그가 왜 그것을 찾고 있었는지 이해하지 못합니다. 어쨌든 새로운 프로젝트를 만들었고 이전 소스를 새로운 것으로 복사했으며 ... 작동합니다.

나는 여전히 하드도 (왜 다른 그가 pom.xml 파일을 찾아 것인가?) 받는다는 프로젝트로 그것에 대해

생각 그리고 나는 이름에 대한 혼란을 드려 죄송합니다 다시 왜 일식 알아 내기 위해 찾아

필드/열 수 도와 줘서 고마워!

관련 문제