Criteria cr = session.createCriteria(ProductId.class);
List<ProductId> policyCount2 = cr.list();
System.out.println(policyCount2.size());
for(ProductId x : policyCount2) {
System.out.println(x.getPRODUCT_TEMPLATE_ID());
}
Es gibt 8 ProductId Zeilen in der Tabelle .... Hibernate kann 8 Datensätze finden. aber es gibt gleiche Produktvorlagen 8mal .. so ...Hibernate-Kriterien gibt doppelte Einträge zurück (keine Joins)
1
1
1
1
1
1
1
1
Dies ist eine gerade nach vorne aus der Tabelle ProductId wählen. An diesem Programm sind keine JOINS beteiligt. Hier
ist die ProductId Schablonentabelle
PRODUCT_ID PRODUCT_TEMPLATE_ID
FDC140012 1
FDC140012 2
FDC140012 3
FDH140012 5
FDH140012 6
FDH140012 12
FDH140012 10
FDH140012 11
Hier ist die ProductId POJO ...
public class ProductId {
private String PRODUCT_ID;
private int PRODUCT_TEMPLATE_ID;
public String getPRODUCT_ID() {
return PRODUCT_ID;
}
public void setPRODUCT_ID(String pRODUCT_ID) {
PRODUCT_ID = pRODUCT_ID;
}
public int getPRODUCT_TEMPLATE_ID() {
return PRODUCT_TEMPLATE_ID;
}
public void setPRODUCT_TEMPLATE_ID(int pRODUCT_TEMPLATE_ID) {
PRODUCT_TEMPLATE_ID = pRODUCT_TEMPLATE_ID;
}
public String getSTATE_LIST() {
return STATE_LIST;
}
public void setSTATE_LIST(String sTATE_LIST) {
STATE_LIST = sTATE_LIST;
}
}
Hier meine Mapping-Datei ist ....
<hibernate-mapping>
<class name="model.ProductId" table="PRODUCT_ID">
<id name="PRODUCT_ID" type="java.lang.String">
<column name="PRODUCT_ID" />
<generator class="assigned" />
</id>
<property name="PRODUCT_TEMPLATE_ID" type="int">
<column name="PRODUCT_TEMPLATE_ID" />
</property>
<property name="STATE_LIST" type="java.lang.String">
<column name="STATE_LIST" />
</property>
</class>
</hibernate-mapping>
Nun, alle müssen die gleiche PRODUCT_TEMPLATE_ID haben. Oder deine Entität hat einen Fehler. Ohne die Daten und den Code zu sehen, ist es schwer zu erklären. Die Tatsache, dass Sie eine ID einer anderen Entität haben, ist ein Geruch: Sie sollten stattdessen eine Assoziation haben. Und natürlich sollten Sie auch die Java-Namenskonventionen in Java-Code und nicht die SQL-Namenskonventionen beachten. –
vielleicht, weil alle ProductId mit der gleichen Vorlage verknüpft sind (ID 1) –
@Gowtham Wo? –