Active Objects with @Unique constraint in entity fields

Prerak Diwan 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

1 vote
Denis Malyshkin 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"));

Suggest an answer

Log in or Sign up to answer