The Atlassian Community Forums are currently in read-only mode. We will be relaunching on a new platform on September 22 (read more here). We apologize for the extended downtime. For concerns or questions, please email communitymanagers@atlassian.com. See you on the other side, on the new Atlassian Community Forums! :)

×

Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Active Objects with @Unique constraint in entity fields

Prerak Y Diwan
Contributor
September 23, 2019

I am trying to add 'Unique' constraint to my entity column name. 

Example code here:

@Preload
@Table("user")
public interface TestEntity extends Entity {

@NotNull
@AutoIncrement
@PrimaryKey(value = "ID")
int getID();

@Accessor("user_key")
String getUserKey();

@Unique
@Mutator("user_key")
void setUserKey(String user_key);

}

Whenever I try to use this in My DAO layer 

like

TestEntity userEntity = activeObjects.create(TestEntity.class);

userEntity.set("XYZ");

userEntity.save();

 

It gives me SQL exception on the first line that 

user_key cannot be null. It tries to insert an entry before even I set the value and call save. If I remove @unique tag it works fine. But then how to enforce unique constraint on the column. Is there any other way that I am missing here that can solve my purpose or do I need to call a get first to see if name is unique. Your input is well appreciated. Thanks

 

1 answer

Comments for this post are closed

Community moderators have prevented the ability to post new answers.

1 vote
Denis Malyshkin
Contributor
May 27, 2021

Unique fields usually can't be null. To insert NOT_NULL fields using the Active Objects library you should use the 'create()' method with a parameter list, for example:

TestEntity userEntity = activeObjects.create(TestEntity.class,
new DBParam("USER_KEY", "XYZ"));