[{"data":1,"prerenderedAt":263},["ShallowReactive",2],{"project-5956867":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":34,"aspects":35,"strip":42,"post_text":43,"what":44,"said":64,"maker_in_thread":143,"shape":152,"grid":156,"attempts":225,"same_week":226,"maker_shows":206,"maker_hidden":256,"reader_version":257,"card":258},"5956867","fluent SQL","a minimalistic SQL builder for Java","title","Show HN: fluent SQL – a minimalistic SQL builder for Java","https:\u002F\u002Fgithub.com\u002Fivanceras\u002Ffluent-sql\u002F","github.com","ivanceras",1372407927,2013,35,28,702,1739,41,"shown","languages","sql query builder library","library",[24,25,26,27],"java","sql builder","fluent api","query builder","debated",-0.08,{"positive":31,"neutral":32,"mixed":33,"critical":31},5,4,1,15,{"design":36,"idea":39,"execution":41},{"positive":37,"critical":38},3,0,{"positive":40,"critical":32},2,{"positive":38,"critical":33},[31,38,31,37,38,38,33,31,38,31,33,38,38,38,38,37,38,38,38,33,38,33,38,37,33,31,37,37],"A minimalistic Fluent SQL API for Java built with one compilation unit aimed to resemble the code to your original SQL code",{"problem":45,"audience":52,"pricing":52,"motivation":53,"time_to_build":52,"stack":57,"openness":63,"stage":63,"team_size":63},{"value":46,"source":47,"evidence":48},"Awkward string manipulation when building SQL queries in Java","maker",[49],{"id":50,"by":11,"text":51},"5957345","Manipulating string in java\u002FIDE is a bit odd. I wrote the code in order to get away with the awkward strings manipulation in java. Plus I have this generator tools which…",null,{"value":54,"source":47,"evidence":55},"Avoid awkward string manipulation in Java and catch misspelled tables\u002Fcolumns at dev time",[56],{"id":50,"by":11,"text":51},[58],{"value":59,"source":47,"evidence":60},"Java",[61],{"id":62},"post","unknown",{"praise":65,"objections":82,"requests":105,"questions":114,"alternatives":121},[66],{"value":67,"source":68,"evidence":69},"Clean, slick DSL-style API that resembles SQL","commenter",[70,74,78],{"id":71,"by":72,"text":73},"5957011","zeroDivisible","This is opinion only, so please don't take this as me being negative: I really like the idea, but there's one thing which need to happen for this to be upstream. Most decent…",{"id":75,"by":76,"text":77},"5957034","ww520","Looks cool. I love DSL style API for chaining calls. Make it so simple.",{"id":79,"by":80,"text":81},"5957477","cpfohl","Very slick. My only suggestion is to allow a bit more terseness by adding static versions of all the calls that can happen at the beginning of the Query. The static versions…",[83,94],{"value":84,"source":68,"evidence":85},"Embedding SQL in Java is less readable than plain SQL",[86,90],{"id":87,"by":88,"text":89},"5957162","steve_barham","I don't like this. I'm strongly of the opinion that SQL is a beautiful language, able to express in terse yet readable statements operations which would take many pages of Java…",{"id":91,"by":92,"text":93},"5957334","icedchai","Looks cool, but personally I'd rather just use regular SQL.",{"value":95,"source":68,"evidence":96},"Existing jOOQ library already does this more fully",[97,101],{"id":98,"by":99,"text":100},"5957172","jhh","This looks very similar to jOOQ in my first impression. http:\u002F\u002Fwww.jooq.org\u002F I wonder if the author was aware of the existence of jOOQ?",{"id":102,"by":103,"text":104},"5957217","mimog","Nice, but anyone needing something like this should probably consider looking at jooq.",[106],{"value":107,"source":68,"evidence":108},"Static factory methods for starting queries, e.g. Query.SELECT_ALL()",[109,110],{"id":79,"by":80,"text":81},{"id":111,"by":112,"text":113},"6025019","lukaseder","That helps, specifically with static imports, e.g. import static com.example.Query.*;",[115],{"value":116,"source":68,"evidence":117},"How is table and column name checking done statically when names are strings?",[118],{"id":119,"by":112,"text":120},"6025044","Do you have an example of this static analysis of table\u002Fcolumn names? From what I see in your documentation, these things are string-based...? How can they be statically analysed?",[122,130,137],{"value":123,"source":68,"evidence":124},"jOOQ",[125,126],{"id":98,"by":99,"text":100},{"id":127,"by":128,"text":129},"5959077","jkrasnay","I think jOOQ is a little more heavyweight. It introspects your database and builds a Java class structure that reflects the schema. More typesafe, certainly, but more of a…",{"value":131,"source":68,"evidence":132},"Squiggle SQL",[133],{"id":134,"by":135,"text":136},"5957493","time4tea","Hmm looks a bit like Squiggle SQL, http:\u002F\u002Fcode.google.com\u002Fp\u002Fsquiggle-sql\u002F but less",{"value":138,"source":68,"evidence":139},"sqlbuilder (jkrasnay)",[140],{"id":141,"by":128,"text":142},"5959064","Looks cool! I wrote a similar library that's been working out well in my projects: https:\u002F\u002Fgithub.com\u002Fjkrasnay\u002Fsqlbuilder",{"comments":32,"answered":40,"key":144},[145,148,151],{"id":146,"text":147},"5957575","would consider adding it",{"id":149,"text":150},"5957313","Hi, i wrote the code 3 days ago. I wasn't aware of jooq, it looks cool though.",{"id":50,"text":51},{"commenters":153,"max_depth":32,"maker_replies":32,"first_comment_mins":154,"lifespan_hours":155},17,58,315,[157,159,161,162,164,166,168,170,174,177,178,180,182,185,188,190,191,194,196,201,203,205,207,210,213,215,218,222],[79,38,31,158,80,38],"project\u002Fpositive\u002Fdesign",[146,38,38,160,11,33],"maker\u002Fpositive\u002Fdesign",[111,38,31,158,112,38],[98,33,37,163,99,38],"project\u002Fneutral\u002Fidea",[149,33,38,165,11,33],"maker\u002Fneutral\u002Fnone",[127,33,38,167,128,38],"commenter\u002Fneutral\u002Fidea",[71,40,33,169,72,38],"project\u002Fcritical\u002Fexecution",[171,37,31,172,173,38],"5957921","project\u002Fpositive\u002Fidea","grandpoobah",[175,37,38,176,112,38],"6025024","commenter\u002Fneutral\u002Fnone",[75,32,31,158,76,38],[87,31,33,179,88,38],"project\u002Fcritical\u002Fidea",[181,31,38,167,99,38],"5957181",[183,31,38,184,88,38],"5957282","commenter\u002Fcritical\u002Fidea",[186,31,38,167,187,38],"5957302","ocharles",[50,31,38,189,11,33],"maker\u002Fneutral\u002Fexecution",[119,31,37,189,112,38],[192,31,38,167,193,38],"5957980","masklinn",[195,31,38,167,112,38],"6025429",[197,198,38,199,200,38],"5957920",6,"other\u002Fneutral\u002Fnone","andrewcooke",[102,202,33,179,103,38],7,[141,204,38,199,128,38],8,[134,206,33,179,135,38],9,[208,206,38,209,11,33],"5958054","maker\u002Fneutral\u002Fdesign",[211,206,37,212,112,38],"6025037","project\u002Fneutral\u002Fdesign",[91,214,33,179,92,38],10,[216,214,31,172,217,38],"5957385","siddboots",[219,214,37,220,221,38],"5957505","project\u002Fmixed\u002Fidea","ygra",[223,214,37,224,217,38],"5957562","maker\u002Fneutral\u002Fidea",[],[227,232,237,241,246,251],{"id":228,"name":229,"points":230,"category":231},"5981446","Streak Secure Gmail",170,"security_privacy",{"id":233,"name":234,"points":235,"category":236},"5985793","HN Jobs",149,"web_saas",{"id":238,"name":239,"points":240,"category":20},"5969535","Chicken chicken chicken",147,{"id":242,"name":243,"points":244,"category":245},"5973595","Glass Tesla",96,"consumer_social",{"id":247,"name":248,"points":249,"category":250},"5965673","Kite",95,"dev_tools",{"id":252,"name":253,"points":254,"category":255},"5986176","Bitcoins with Friends",67,"finance_crypto",false,"v2",{"id":259,"name":5,"line":6,"ai":256,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":29,"top":18,"kw":260,"maker":11,"domain":10,"tier":19,"attempts":38,"strip":261,"url":9,"mix":262,"praise":67,"objection":84,"sub":21},5956867,[24,25,26,27],"5053001505100003000101031533",[31,32,33,31],1794036507807]