Ситуация: (классы, являющиеся сущностями)
Как я могу достичь этого в subclass1Repository:
findByProperty_property2(xx)
Очевидно, я получаю «Свойство свойства 2», найденное для типа class1 , Traversed path: class2 .property2.
Очевидно, что JPA не знает, что свойство имеет тип subclass2 .
@Entity open class Class1 constructor( @ManyToOne property: Class2 ) @Entity open class Class 2 constructor() { } @Entity open class subclass1 constructor( property: Subclass2 ):Class1(property = property) @Entity open class subclass2 constructor( property2: Double ):Class2(..) interface subclass1Repository: JpaRepository<Subclass1, Long>{ fun findByProperty_property2(prop2:Double): List<Subclass1> }
Вы хотите отобразить подкласс1 и подкласс2? Я был немного потерян с вашим вопросом … но надеюсь, что это имеет ценность для вас.
@Entity public class Foo1 { @Id private int id; // primary key is great to have for map tables. @ManyToMany // or something @JoinTables(... private List<Foo2> foo2; } @Entity public class Foo2 { @Id private int id; @ManyToMany(mappedBy="foo2") private List<Foo1> foo1; }
создавать геттеры и сеттеры.
Репозиторий для foo2:
public interface Foo2Repository extends CrudRepository<Foo2, Long> { Foo2 findBySomeValue(Double doubleValue);
Вы можете создать класс @Service для метода:
@Service pubic class FooService { @Autowired private Foo2Repository foo2Repository; public List<Foo1> ListMyFoo(Double doubleValue) { return this.yourInterface.findBySomeValue(doubleValue).getFoo1(); }
Он возвращает вам список на основе Foo2 SomeValue – это правда.