3

私はクンデラの新人です。私のユースケースは Kundera と MySQL です。春の CrudRepository を使用してエンティティを保存しています。そのエンティティの ID は自動生成されます。Kundera はそのオブジェクトを DB に正常に保存しています。しかし、間違ったIDを返します。その Id を使用して DB からデータを検索すると、null が返されます。

足りないものがあれば教えてください。

エンティティ クラス:

    @Entity
    @Table(name = "REQUEST_DETAILS")
    public class RequestDetails {

        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        @Column(name = "ID")
        protected long id;

        @Column(name = "REQUEST_STATUS", nullable = false)
        private String requestStatus;

        // getter setter
    }

メインクラス:

    public class Main {

        public static void main(String[] args) {

            ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:/spring/jpa-config.xml");

            RequestDetailsRepository repository = context.getBean(RequestDetailsRepository.class);

            RequestDetails requestDetails = new RequestDetails();
            requestDetails.setRequestStatus("STARTED");

            RequestDetails updatedRequest = repository.save(requestDetails);
            System.out.println("request id : " + updatedRequest.getId());   // returning wrong ID (probably hashcode of that object)

           // Do some operation

           RequestDetails details = repository.findOne(updatedRequest.getId()); // returning NULL

    }

CRUD リポジトリ:

    public interface RequestDetailsRepository extends org.springframework.data.repository.CrudRepository<RequestDetails, Long> {

    }

jpa-config.xml :

    <beans>

        <context:component-scan base-package="com.example.project" />

        <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
                <property name="persistenceUnitName" value="persistenceUnit"/>
        </bean>

        <jpa:repositories base-package="com.example.project.repository"/>   

    </beans>

Persistence.xml :

    <persistence>
        <persistence-unit name="persistenceUnit">
            <provider>com.impetus.kundera.KunderaPersistence</provider>
            <properties>
                <property name="kundera.client.lookup.class" value="com.impetus.client.rdbms.RDBMSClientFactory" />
                <property name="hibernate.show_sql" value="true" />
                <property name="hibernate.format_sql" value="true" />
                <property name="hibernate.hbm2ddl.auto" value="update" />
                <property name="hibernate.dialect" value="org.hibernate.dialect.SQLServer2008Dialect" />
                <property name="hibernate.connection.driver_class" value="net.sourceforge.jtds.jdbc.Driver" />
                <property name="hibernate.connection.url"
                    value="jdbc:jtds:sqlserver://10.127.127.215:1433;databaseName=myDB" />
                <property name="hibernate.connection.username" value="user" />
                <property name="hibernate.connection.password" value="password" />
                <property name="hibernate.current_session_context_class"
                    value="org.hibernate.context.ThreadLocalSessionContext" />
            </properties>
        </persistence-unit>
    </persistence>  
4

0 に答える 0