Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Query where many isNotEmpty() ... on ManyToMany with SoftDelete produces incorrect SQL #1253

Closed
rbygrave opened this issue Feb 9, 2018 · 0 comments
Assignees
Labels
Milestone

Comments

@rbygrave
Copy link
Member

rbygrave commented Feb 9, 2018

Steps to reproduce

@Entity
@Table(name = "many_a")
class ManyA(@Id val id: Long) : Model() {

    @ManyToMany(mappedBy = "many")
    var many: MutableList<ManyB> = ArrayList()

    @SoftDelete
    var deleted: Boolean = false

    companion object: ManyAFinder()
}
@Entity
@Table(name = "many_b")
class ManyB(@Id val id: Long) : Model() {

    @ManyToMany
    var many: MutableList<ManyA> = ArrayList()

    @SoftDelete
    var deleted: Boolean = false

    companion object : ManyBFinder()
}
ManyA.where()
        .many.isNotEmpty
        .findList()
select t0.id, t0.deleted from many_a t0 where exists (select 1 from many_b_many_a x where x.many_a_id = t0.id and x.deleted = false)and t0.deleted = false
Exception in thread "main" javax.persistence.PersistenceException: Query threw SQLException:ERROR: column x.deleted does not exist
  Подсказка: Perhaps you meant to reference the column "t0.deleted".
  Позиция: 115 Bind values:[] Query was:select t0.id, t0.deleted from many_a t0 where exists (select 1 from many_b_many_a x where x.many_a_id = t0.id and x.deleted = false)and t0.deleted = false
	at io.ebean.config.dbplatform.SqlCodeTranslator.translate(SqlCodeTranslator.java:52)
	at io.ebean.config.dbplatform.DatabasePlatform.translate(DatabasePlatform.java:192)
	at io.ebeaninternal.server.query.CQueryEngine.translate(CQueryEngine.java:138)
	at io.ebeaninternal.server.query.DefaultOrmQueryEngine.translate(DefaultOrmQueryEngine.java:44)
	at io.ebeaninternal.server.core.OrmQueryRequest.translate(OrmQueryRequest.java:96)
	at io.ebeaninternal.server.query.CQuery.createPersistenceException(CQuery.java:688)
	at io.ebeaninternal.server.query.CQueryEngine.findMany(CQueryEngine.java:378)
	at io.ebeaninternal.server.query.DefaultOrmQueryEngine.findMany(DefaultOrmQueryEngine.java:149)
	at io.ebeaninternal.server.core.OrmQueryRequest.findList(OrmQueryRequest.java:428)
	at io.ebeaninternal.server.core.DefaultServer.findList(DefaultServer.java:1445)
	at io.ebeaninternal.server.core.DefaultServer.findList(DefaultServer.java:1423)
	at io.ebeaninternal.server.querydefn.DefaultOrmQuery.findList(DefaultOrmQuery.java:1285)
	at io.ebean.typequery.TQRootBean.findList(TQRootBean.java:1220)
	at utils.TestClass$Companion.main(TestClass.kt:45)
	at utils.TestClass.main(TestClass.kt)
@rbygrave rbygrave added the bug label Feb 9, 2018
@rbygrave rbygrave added this to the 11.10.3 milestone Feb 9, 2018
@rbygrave rbygrave self-assigned this Feb 9, 2018
rbygrave added a commit that referenced this issue Feb 9, 2018
rbygrave added a commit that referenced this issue Feb 9, 2018
@rbygrave rbygrave closed this as completed Feb 9, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant