Coding⏱️ 4 min read📅 2026-06-04

How to Fix: Why do I get a "Null value was assigned to a property of primitive type setter of" error message when using HibernateCriteriaBuilder in Grails

HibernateCriteriaBuilder error when using primitive attributes in Grails domain objects.

Quick Answer: Use the 'value' method instead of assignment to avoid null value errors.

The 'Null value was assigned to a property of primitive type setter of' error message occurs when using HibernateCriteriaBuilder in Grails. This issue affects developers who are working with domain objects that have primitive attributes, such as integers or strings.

This error can be frustrating because it prevents the application from functioning correctly, and it may require significant time and effort to resolve. However, by following the steps outlined below, you should be able to identify and fix the problem.

⚠️ Common Causes

  • The primary reason for this error is that HibernateCriteriaBuilder does not support assigning null values to primitive attributes. This is because primitive types are immutable in Java, and assigning a null value would violate this immutability.
  • An alternative reason for this error could be due to the fact that the domain object's property is not properly initialized before being used with HibernateCriteriaBuilder. This can occur if the property is set to null using code outside of Grails, such as in a Java class.

🚀 How to Resolve This Issue

Using the '@Null' annotation on the domain object's property

  1. Step 1: Open your Grails domain object file and add the '@Null' annotation above the primitive attribute that is causing the error. For example, if you have an integer attribute called 'myAttribute', you would add '@Null' like this: `int myAttribute = @Null`.
  2. Step 2: Alternatively, you can also use the '@Column(columnDefinition = "NULL")' annotation on the domain object's property to explicitly specify that it should allow null values. For example: `int myAttribute = @Column(columnDefinition = "NULL")`.
  3. Step 3: Once you have added the annotation, rebuild your application and try running the HibernateCriteriaBuilder query again. The error should now be resolved.

Using a wrapper class to encapsulate the primitive attribute

  1. Step 1: Create a new Java class that will wrap the primitive attribute. For example, if you have an integer attribute called 'myAttribute', you would create a class like this: `public class MyAttributeWrapper { private int value; public MyAttributeWrapper(int value) { this.value = value; } public int getValue() { return value; } }`.
  2. Step 2: In your Grails domain object file, replace the primitive attribute with an instance of the wrapper class. For example: `int myAttribute = new MyAttributeWrapper(0)`.
  3. Step 3: When using HibernateCriteriaBuilder, you can now work with the wrapper class as if it were a regular Java object. The error should now be resolved.

💡 Conclusion

By following these steps, you should be able to resolve the 'Null value was assigned to a property of primitive type setter of' error message when using HibernateCriteriaBuilder in Grails. Remember to always check your domain objects for any annotations that may be causing issues with Hibernate.

Did this fix your problem?

If not, try searching for specific error codes.

🔍 Search Error Database

❓ Frequently Asked Questions