小编Jos*_*ina的帖子

将vuex状态与服务器同步的推荐策略

想象一下这个简单的案例.您有一个Vue JS应用程序,用户可以在其中创建任务列表并对其进行排序.这些列表应由服务器存储在数据库中.让我们假设我们拥有ListComponent大部分用户体验.

我的问题是,我应该使用哪种模式来处理前端和后端数据同步?

A)浏览vuex:将活动列表(显示,编辑或创建的列表)存储在vuex中store.在ListComponent将改变store,并随后,在列表中所做的更改将通过API发送到后端.

B)直接转到服务器:ListComponent每次显示,编辑或创建列表时,直接从服务器读取和写入.

如果遵循A,商店应该采用哪种架构?我应该如何以及何时进行同步?如何跟踪已更改的内容和未更改的内容?

vue.js vuex vuejs2

18
推荐指数
1
解决办法
6266
查看次数

受保护的?JGraphT DefaultEdge类上的getSource和getTarget方法

这些方法getSource()getTarget()DefaultEdgeorg.jgrapht.graph.DefaultEdge保护.

我应该如何访问每个边缘的源和目标顶点返回由edgeSet()org.jgrapht.graph.SimpleGraph

下面的代码显示了正在发生的事情.

import java.util.Set;

import org.jgrapht.UndirectedGraph;
import org.jgrapht.graph.DefaultEdge;
import org.jgrapht.graph.SimpleGraph;

public class TestEdges
{
    public static void main(String [] args)
    {
        UndirectedGraph<String, DefaultEdge> g =
            new SimpleGraph<String, DefaultEdge>(DefaultEdge.class);

        String A = "A";
        String B = "B";
        String C = "C";

        // add the vertices
        g.addVertex(A);
        g.addVertex(B);
        g.addVertex(C);

        g.addEdge(A, B);
        g.addEdge(B, C);
        g.addEdge(A, C);

        Set<DefaultEdge> edges = g.edgeSet();

        for(DefaultEdge edge : edges) {
            String v1   = edge.getSource(); // …
Run Code Online (Sandbox Code Playgroud)

jgrapht

15
推荐指数
1
解决办法
3102
查看次数

找到在无向图上形成简单循环的所有路径

我在编写一个算法时遇到了一些麻烦,该算法返回在无向图上形成简单循环的所有路径.

我首先考虑从顶点A开始的所有循环,对于下图

A,B,E,G,F
A,B,E,D,F
A,B,C,D,F
A,B,C,D,E,G,F

额外的周期将是

B,C,D,E
F,D,E,G

但是这些可以通过例如再次调用相同的算法但分别从B和D开始来找到.

该图如下所示 -

在此输入图像描述

我目前的方法是通过访问A的所有邻居,然后访问邻居的邻居等来构建A的所有可能路径,同时遵循以下规则:

  • 每次存在多个邻居时,就会找到一个分叉,并创建并探索来自A的新路径.

  • 如果任何创建的路径访问原始顶点,则该路径是循环.

  • 如果任何创建的路径访问相同的顶点两次(不同于A),则丢弃该路径.

  • 继续,直到探索了所有可能的路径.

我目前在尝试避免不止一次发现相同的循环时遇到问题,我试图通过查看新邻居是否已经是另一个现有路径的一部分来解决这个问题,以便两个路径组合(如果是独立的)构建一个周期.

我的问题是:我是否遵循正确/更好/更简单的逻辑来解决这个问题.

我很感激你的意见

algorithm graph cycle graph-algorithm

6
推荐指数
1
解决办法
4218
查看次数

错误:类型"datetime"不存在

我正在尝试将基于hibernate的应用程序从MySQL迁移到Postgres,但是日期格式似乎有问题

在我的实体中,我有

@Entity
@Table( name = "APP_USERS" )
public class User {

    @Id
    @GeneratedValue(generator="increment")
    @GenericGenerator(name="increment", strategy = "increment")
    private int id;

    private String username;
    private String email;
    private String password;
    private String firstname;
    private String lastname;
    private Timestamp joindate;
    ...
Run Code Online (Sandbox Code Playgroud)

但是我在创建表时遇到错误

ERROR: type "datetime" does not exist
Run Code Online (Sandbox Code Playgroud)

来自"showsql"的sql是

Hibernate: create table APP_USERS (id integer not null, email varchar(255), firstname varchar(255), joindate datetime, lastname varchar(255), password varchar(255), username varchar(255), primary key (id))
Run Code Online (Sandbox Code Playgroud)

我在本地安装了postgresql-9.5.3-1,我使用的是Hibernate 5.0.10.Final版本

在Google上搜索该错误给我的结果很少.

postgresql hibernate

6
推荐指数
2
解决办法
8565
查看次数

Hibernate选择具有给定属性的集合元素

实体Project具有contributors@OneToMany实体关系映射的集合属性User

@Entity
@Table( name = "projects" )
public class Project {
    ...

    @OneToMany
    @JoinTable(name = "project_contributors")
    private List<User> contributors = new ArrayList<User>();

    ...
}
Run Code Online (Sandbox Code Playgroud)

然后我需要检查,如果contributors已经有一个userid contributorId前加入它.我正在尝试使用HQL查询,但我显然很无聊.

我在想什么:

Query query = session.createQuery(
        "select p.contributors from Project p where p.id = :pId and p.contributors.id = :cId"
    );

query.setParameter("pId", projectId);
query.setParameter("cId", contributorId);

@SuppressWarnings("unchecked")
List<User> res = (List<User>) query.list();
Run Code Online (Sandbox Code Playgroud)

但它给出了错误

illegal attempt to dereference collection [project0_.id.contributors] with element property reference [id] …
Run Code Online (Sandbox Code Playgroud)

hibernate hql

5
推荐指数
2
解决办法
1万
查看次数

Vue Js和Spring Boot基本身份验证

我有一个启用了Spring Security的基本Spring Boot API.当从Vue内部访问安全资源(使用axios)时,浏览器将向我请求用户名和密码,并显示"需要授权"弹出窗口.之后,凭据似乎由浏览器存储,我可以继续发出请求.

我应该如何绕过浏览器进行的身份验证过程,并将其替换为由Vue Js直接制作和控制的过程?

basic-authentication spring-boot vue.js

4
推荐指数
1
解决办法
6730
查看次数

2
推荐指数
1
解决办法
7767
查看次数

Hibernate Criteria Subquery HibernateException: Unknown entity: null

作用域是获取所有Bid由AND创建的元素, userId并且是Project projectIdAND 的一部分,其中存在 a DecisionBid其上的Verb.verbString 是"accepted"

但是,我得到了一个

org.hibernate.HibernateException: Unknown entity: null
Run Code Online (Sandbox Code Playgroud)

尝试将其实现为以下查询和子查询对时的异常:

DetachedCriteria accepedBidIds = DetachedCriteria.forClass(DecisionOnBid.class, "dec")
        .createAlias("dec.bid", "dec_bid")
        .add(Restrictions.eq("verb.verb", "accepted"))
        .setProjection(Projections.property("dec_bid.id"));

Criteria query = sessionFactory.getCurrentSession().createCriteria(Bid.class).createAlias("cbtion.project","proj");
query.add(Restrictions.and(
        Restrictions.like("creator.id", userId),
        Restrictions.like("proj.id", projectId),
        Subqueries.eq("id", accepedBidIds)));

List<Bid> bids = (List<Bid>) query.list();
Run Code Online (Sandbox Code Playgroud)

这些是我的实体。我故意避免双向依赖。

@Entity
@Table( name = "bids" )
public class Bid {

    @Id
    @GeneratedValue(generator="increment")
    @GenericGenerator(name="increment", strategy = "increment")
    private int id;
    @ManyToOne
    private Cbtion cbtion = new Cbtion();
    @ManyToOne
    private …
Run Code Online (Sandbox Code Playgroud)

hibernate subquery detachedcriteria

0
推荐指数
1
解决办法
4029
查看次数