Skip to content

Can't set attribute of embeddable with only a constructor for arguments [DATAJDBC-370] #594

@spring-projects-issues

Description

@spring-projects-issues

Jens Schauder opened DATAJDBC-370 and commented

Trying to load an entity with the following structure results in an exception

java.lang.UnsupportedOperationException: Cannot set immutable property org.springframework.data.jdbc.core.JdbcAggregateTemplateIntegrationTests$Immutable.name!

	private static class Root {

		@Id
		Long id;

		@Embedded
		Immutable immutable;
	}

	@Value
	private static class Immutable {

		String name;
        }

Full stack trace:

java.lang.UnsupportedOperationException: Cannot set immutable property org.springframework.data.jdbc.core.JdbcAggregateTemplateIntegrationTests$Immutable.name!

	at org.springframework.data.mapping.model.BeanWrapper.setProperty(BeanWrapper.java:86)
	at org.springframework.data.mapping.model.ConvertingPropertyAccessor.setProperty(ConvertingPropertyAccessor.java:61)
	at org.springframework.data.jdbc.core.EntityRowMapper.readEmbeddedEntityFrom(EntityRowMapper.java:158)
	at org.springframework.data.jdbc.core.EntityRowMapper.readOrLoadProperty(EntityRowMapper.java:118)
	at org.springframework.data.jdbc.core.EntityRowMapper.populateProperties(EntityRowMapper.java:103)
	at org.springframework.data.jdbc.core.EntityRowMapper.mapRow(EntityRowMapper.java:85)
	at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:94)
	at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:61)
	at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:678)
	at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:616)
	at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:668)
	at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:693)
	at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:747)
	at org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate.query(NamedParameterJdbcTemplate.java:215)
	at org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate.query(NamedParameterJdbcTemplate.java:227)
	at org.springframework.data.jdbc.core.DefaultDataAccessStrategy.findAll(DefaultDataAccessStrategy.java:252)
	at org.springframework.data.jdbc.core.JdbcAggregateTemplate.findAll(JdbcAggregateTemplate.java:187)

Reference URL: https://stackoverflow.com/q/55927255/66686

Referenced from: pull request #151

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions