0

コードは次のとおりです。

public void storePartner(PartnerInfo partner) throws ConnectionException {
    EntityManager entityManager = entityManagerFactory.createEntityManager();
    entityManager.persist(partner);
    entityManager.flush();
    entityManager.close();
    entityManagerFactory.close();
}

エンティティクラスは次のとおりです。

    @Entity
@Table(name="partners", schema = "myapp@myapp")
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class PartnerInfo {
    @Id
    private String type;

    @XmlElement(name="description")
    @Column(name="description")
    private String description;

    @XmlElement(name="code")
    @Column(name="code")
    private String code;

    @Column(name="image")
    @XmlElement(name = "image")
    private String imageUrl;

そのため、新しいオブジェクト PartnerInfo を取得すると (すべて順調に進んでいます)、cassandra データベースで新しいオブジェクトを見つけることができます。しかし、オブジェクトを更新すると (たとえば、説明のみを変更すると)、オブジェクトは変更されません。なんで?kundera と cassandra で UPDATING を解決するにはどうすればよいですか?

クンデラのバージョン: 2.6

4

1 に答える 1

0

自力で解決。問題はタイムスタンプ列にありました。データベース内のすべてのエントリは、cassandra-cli で追加されました。したがって、列のタイムスタンプは 13 桁の値でした。kundera で何かを追加すると、タイムスタンプが 10 桁の UNIX タイムスタンプのように設定されます。したがって、すべての新しいオブジェクトは「より若い」ものになります。

SO、この問題は解決済みとしてマークできます。新しい問題を修正します - タイムスタンプ形式が異なる理由...すべてに感謝します。

于 2014-01-13T04:54:15.047 に答える