我想在我的项目中使用弹簧投影。我正在按照此网址http://docs.spring.io/spring-data/jpa/docs/current/reference/html/#projections中提到的方式进行操作
interface NoAddresses {
String getFirstName();
String getLastName();
}
Run Code Online (Sandbox Code Playgroud)
唯一的区别是我的界面是公共的。并且与存储库不在同一包中。这是一个要求吗?
我仍然看到整个实体都被返回,而不仅仅是投影的列。
我有
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>1.10.2.RELEASE</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
不起作用。我需要添加一些依赖项才能使投影正常工作吗?我没有使用 spring-boot,而只是在我的项目中使用 spring-data,在 tomcat 服务器上运行。
谢谢查哈特
例如,我有两个具有OneToOne关联的实体。
@Entity
class Entity1(
@Column val columnToSelect1: String,
@Column val columnToSelect2: String,
@Column val columnToSelect3: String,
@Column val columnToSelect4: String,
@Column val columnToSelect5: String,
@Column val columnToSelect6: String,
@Column val columnToSelect7: String,
@Column val columnToSelect8: String,
@Column val columnToSelect9: String,
@Column val columnToSelect10: String,
@OneToOne
@JoinColumn
val columnNotToSelect: Entity2
)
Run Code Online (Sandbox Code Playgroud)
而且,很多时候我想选择除特定列(例如val columnNotToSelect: Entity2.
那是因为选择Entity2将导致触发另一个并不总是需要的查询。
目前,我正在像这样实现该要求。
interface Entity1Getter {
fun getColumnToSelect1(): String
fun getColumnToSelect2(): String
fun getColumnToSelect3(): String
...
}
interface Entity1CrudRepository : CrudRepository<Entity1, UUID> …Run Code Online (Sandbox Code Playgroud)