Jaroslaw K.
Jaroslaw K.

Reputation: 5394

Can't save OneToOne relation

I have two types: Resource and User with one to one relation between them.

@Entity
@Table( name = "RESOURCE" )
public class Resource
{
    //...somecode...

    @OneToOne( fetch = FetchType.LAZY )
    private User user;
}


@Entity
@Table( name = "USERS" )
public class User
{

    @Id
    @GeneratedValue( generator = "USER_ID_SEQ" )
    @GenericGenerator( name = "USER_ID_SEQ", strategy = "sequence", parameters = @Parameter( name = "sequence", value = "SEQ_USER_ID" ) )
    @Column( name = "USER_ID" )
    private long id;

    //...somecode...

    @OneToOne( mappedBy = "user", cascade = CascadeType.ALL )
    private Resource resource;
}

When i created Resource object with user set, everything is correct. Resource with a right user is created.

But when I try create user with resource set, resource is not updated on user on database.

Anyone can help me? What am I doing wrong?

Upvotes: 1

Views: 43

Answers (1)

Sergej Panic
Sergej Panic

Reputation: 839

You need to set the association on both entity sides:

Resource resource = ...exiting resource...

User user = new User();
user.setResource(resource);

resource.setUser(user);

Upvotes: 1

Related Questions