2012-06-04 5 views
0

Я получаю эту ошибку:Hibernate OneToOneToOne Mapping

Error saving identity in IdentityDaoImpl. Reason: org.hibernate.PropertyValueException: not-null property references a null or transient value: com.domain.Identity.password 

Я отображенный 3 таблицы на картографической основе OneToOneToOne.

пользователя -> Account -> Идентичность

Как у меня есть сейчас, Identity расширяет счета и счета распространяется пользователь.

Возможно, я неправильно настроен. Я считаю это немного сложным, потому что существует 3 отношения к одному, а не 2 ...

Каков правильный способ сделать это?

EDIT 1:

Я изменил все мои слияния() методы для сохранения() уже, но не решить проблему.

EDIT 2:

Вот чистую версию моего лица:

@Entity() 
@Table(name = "`user`") 
@Inheritance(strategy = InheritanceType.JOINED) 
@DiscriminatorColumn(discriminatorType = DiscriminatorType.STRING, name = "type") 
@DiscriminatorValue("") 
public class User extends ActionSupport implements UserDetails, Serializable { 

private static final long serialVersionUID = -7480567862246640031L; 
private Integer ID; 
private String type; 
private String password; 

@Id 
@GeneratedValue(strategy = GenerationType.AUTO) 
@Column(name = "ID") 
public Integer getID() { 
    return ID; 
} 

public void setID(Integer ID) { 
    this.ID = ID; 
} 

@Column(name = "type", nullable = false, unique = false, length = 255) 
public String getType() { 
    return type; 
} 

public void setType(String type) { 
    this.type = type; 
} 

@Override 
@Column(name = "password", nullable = false, length = 255) 
public String getPassword() { 
    return password; 
} 

public void setPassword(String password) { 
    this.password = password; 
} 

}

ответ

0

Можем ли мы увидеть, как вы определяете поле пароля на вашей организации? Я думаю, вы пытаетесь спасти sth. с паролем null, и это нарушает либо @NotNull, либо sth. как required=true

+0

Выполнено ... Да, я занят регистрацией, пытаясь сохранить пользователя. – ThreaT

+0

вы указываете значение nullable = false в поле пароля ... пытайтесь сохранить sth. после того, как вы сделали вызов setPassword с некоторым значением, отличным от нуля – Korgen

+0

На моем register.jsp у меня есть ThreaT

0
Error saving identity in IdentityDaoImpl. Reason: org.hibernate.PropertyValueException: not-null property references a null or transient value: com.domain.Identity.password 

Ваш пароль и введите оба поля обнуляемым ложно, исключение ясно показывает, что вы пытаетесь вставить ненулевое значение пароля, которое не может быть пустым. Кроме того, тип не принимает значение NULL.